|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
型 |
変数の末尾に「$ 」
又はDEFSTR |
String
「String * 長さ」で固定長文字列 |
String |
String |
array[1..n] of char |
CHAR |
なし |
char[] |
CString |
String |
String |
string |
CHAR
VARCHAR2
CLOB |
CHAR
VARCHAR2
CLOB |
string
(vector character)と同じ |
StringBuffer |
StringBuilder |
制限 |
256文字以内? |
|
|
|
文字列定数を代入する際には、配列数が一致している必要がある。 |
変数定義時に長さ指定 |
|
変数定義時に長さ指定
文字列の末尾には暗黙に'\0'が存在するので、その1バイトもカウントする必要あり |
|
内部ではUNICODEで処理される |
|
|
型とバージョンによって最大長が異なる |
型とバージョンによって最大長が異なる |
|
定数の例 |
"abc" |
"あいう" |
"あいう" |
"あいう" |
'abc' |
'ABC' |
'あいう'
"あいう"
q/あいう/
qq/あいう/
「'」は中身そのまま、「"」だと中の変数等を展開する |
"あいう" |
"あいう" |
"あいう" |
'あいう'
"あいう" |
"あいう"
@"あいう" …@を付けると、\がエスケープ文字でなくなる |
'あいう' |
'あいう' |
"ABC" |
CHR$(0) |
vbNullChar |
|
ControlChars.NullChar |
|
|
|
"\0" |
"\0" |
"\0" |
|
"\0" |
|
|
|
"'"+CHR$(34) |
"'""" |
|
"'" + ControlChars.Quote |
'''"' |
|
q/'"/ |
"\'\"" |
"\'\"" |
"\'\"" |
"\'\"" |
"\'\""
@"'""" |
'''"' |
'''"' |
"\'\"" |
CHR$(9)
TAB(8) |
vbTab |
|
ControlChars.Tab |
|
|
|
"\t" |
"\t" |
"\t" |
|
"\t" |
|
|
|
代入 |
S$="abc" |
Dim S As String
S="あいう" |
Dim S
S = "あいう" |
Dim S As String
S = "あいう" |
var s:array[1..3] of char;
s:='abc' |
DCL S CHAR(4);
S='ABC'; |
$s='あいう'; |
char s[16];
strcpy(s,"あいう"); |
CString s;
s="あいう"; |
String s;
s="あいう"; |
var s;
s="あいう";
var s=new String("あいう"); |
|
S='あいう'
UPDATE文 |
S:='あいう'; |
|
長さ |
LEN(A$) |
Len(S) |
Len(S) |
|
|
|
|
strlen(s) |
s.GetLength() |
s.length() |
s.length |
s.Length |
LENGTH(S) |
LENGTH(S) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
比較 |
A$=B$ |
A=B |
|
|
|
|
$a eq $b
($a cmp $b)==0 |
strcmp(a,b)==0 |
a==b
a.Compare(b)==0 |
a.equals(b) |
a==b |
string.compare(a,b)==0
a.compareTo(b)==0 |
A=B |
A=B |
(string= a b)
(char= 字 字) |
A$<B$ |
A<B |
|
|
|
|
$a lt $b |
strcmp(a,b)<0 |
a<b
a.Compare(b)<0 |
a.compareTo(b)<0 |
a<b |
string.compare(a,b)<0
a.compareTo(b)<0 |
A<B |
A<B |
(string< a b)
(char< 字 字) |
なし |
StrComp(a,b,vbTextCompare) |
|
|
|
|
|
strcmpi(a,b) |
a.CompareNoCase(b) |
a.compareToIgnoreCase(b) |
|
|
|
|
(string-equal a b)
(string-not-equal a b)
(string-lessp a b)
(string-greaterp a b)
(string-not-lessp a b)
(char-equal 字 字) |
結合 |
S$=S$+"def" |
S=S+"えお"
S=S &"えお"
「+」は、両方とも文字列でないと駄目。「&」は文字列に変換して結合してくれる。なお、変数の末尾と「&」をくっつけてはいけない(Longの変数だと勘違いされてしまう) |
S = S &"えお" |
S = S + "えお"
S = S &"えお"
S += "えお"
S &= "えお" |
|
S=S||'DEF'; |
$s=$s . 'えお';
$s="$sえお"; |
strcat(s,"えお");
定数同士であれば、「"あい" "えお" 」の様に文字列を並べるだけで結合される(コンパイル時) |
s+="えお"; |
s+="えお"; |
s+="えお"; |
s+="えお"; |
S||'えお'
CONCAT(S,'えお) |
S||'えお'
CONCAT(S,'えお) |
|
抽出 |
M$=MID$(S$,3,1) |
M=Mid(S,3,1) →全角でも1文字としてカウント
M=MidB(S,3,1) →バイト列として扱う
M=Mid$(S,3,1) →文字列以外だとエラー |
M = Mid(S,3,1) |
|
|
|
|
strncpy(m,s+2,1); |
m=s.Mid(2,1); |
m=s.substring(2,2+1); |
m=s.substr(2,1); |
|
SUBSTR(S,3,1) |
SUBSTR(S,3,1) |
|
左抽出 |
L$=LEFT$(A$,3) |
L=Left(S, 3)
L=LeftB(S, 3)
L=Left$(S, 3) |
L = Left(S, 3) |
|
|
|
|
strncpy(l,s,3); |
l=s.Left(3); |
m=s.substring(0,3); |
m=s.substring(0,3); |
|
SUBSTR(S,1,3) |
SUBSTR(S,1,3) |
|
右抽出 |
R$=RIGHT$(A$,3) |
R=Right(S, 3)
R=RightB(S, 3)
R=Right$(S, 3) |
R = Right(S, 3) |
R = Strings.Right$(S, 3) |
|
|
|
|
r=s.Right(3); |
r=s.substring(s.length()-3,s.length()); |
r=s.substring(s.length-3,s.length); |
|
|
|
|
R$=MID$(A$,2) |
R=Mid(S, 2) |
|
|
|
|
|
strcpy(r,s+1); |
r=s.Mid(1); |
r=s.substring(1); |
r=s.substring(1); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
同一文字複数 |
S$=STRING$(10,"A") |
S = String$(10, "A")
S = WorksheetFunction.Rept("A", 10) |
S = String(10, "A") |
|
|
|
$s = 'A' x 10;
$s = 'A'; $s x= 10; |
memset(s, 'A', 10);
s[10] = '\0'; |
|
char[] cs = new char[10];
Arrays.fill(cs, 'A');
s = new String(cs); |
|
|
|
|
|
分割 |
なし |
配列名 = Split(変数, "文字") |
配列名 = Split(変数, "文字") |
|
|
|
@配列名=split(/文字/,$変数); |
strtok |
|
配列名 = 変数.split("文字"); |
配列名=変数.split('文字'); |
|
|
|
|
連結 |
|
変数 = Join(配列名, "区切り文字") |
変数 = Join(配列名, "文字") |
|
|
|
|
|
|
String s =
Arrays.toString(配列);
変数 = s.substring(1, s.length() - 1); |
|
|
|
|
|
空白除去 |
なし |
T = Trim(S) |
T = Trim(S) |
|
|
|
|
なし |
|
t=s.trim(); |
|
t=s.Trim(); |
TRIM(S) |
TRIM(S) |
(string-trim '(#\Space #\Tab #\Newline) s) |
L = LTrim(S) |
L = LTrim(S) |
l=s.TrimLeft(); |
|
l=s.TrimStart(); |
LTRIM(S) |
LTRIM(S) |
(string-left-trim " " s) |
R = RTrim(S) |
R = RTrim(S) |
r=s.TrimRight(); |
|
r=s.TrimEnd(); |
RTRIM(S) |
RTRIM(S) |
(string-right-trim " " s) |
文字埋め |
RIGHT$(SPACE$(2)+S$,2) |
|
|
|
|
|
|
|
|
|
|
s.PadLeft(2, ' '); |
LPAD(S,2) |
LPAD(S,2) |
|
RIGHT$(STRING$(2,"0")+S$,2) |
s.PadLeft(2, '0'); |
LPAD(S,2,'0') |
LPAD(S,2,'0') |
LEFT$(S$+STRING$(2,"0"),2) |
|
RPAD(S,2,'0') |
RPAD(S,2,'0') |
文字コード |
C$=CHR$(65) |
C = Chr(65) |
C = Chr(65) |
Dim C As Char = Convert.ToChar(65) |
chr(65) |
|
|
char c=65; |
TCHAR c=65; |
char c=65; |
|
|
CHR(65) |
CHR(65) |
(code-char 65) |
N=ASC("A") |
N = Asc("A") |
N = Asc("A")
N = AscW("A") 'ユニコード |
|
|
char n='A'; |
TCHAR n='A'; |
char n='A'; |
var c='A'; |
ASCII('A') |
ASCII('A') |
(char-code #\A) |
文字取得 |
C$=MID$(S$,N,1) |
C = Mid(S, 2, 1) |
C = Mid(S, 2, 1) |
|
|
なし |
|
char c=s[n]; |
TCHAR c=s.GetAt(n); |
char c=s.charAt(n); |
var c=s.charAt(n);
var n=s.charCodeAt(n); |
|
|
|
(char s n) |
文字置換 |
MID$(S$,N,1)=C$ |
Mid(S, n, 1) = C |
|
|
|
なし |
|
s[n]=c; |
s.SetAt(n,c); |
|
|
|
|
|
|
文字検索 |
なし |
なし |
|
|
|
なし |
|
strchr(s,c)
strrchr(s,c)
見つけた位置のポインターを返す |
s.Find(c)
s.ReverseFind(c) |
s.indexOf(c)
s.lastIndexOf(c) |
s.indexOf(c)
s.lastIndexOf(c) |
|
|
|
|
検索 |
INSTR(S$,"cd") |
InStr(S, "cd")
InStrRev(S, "cd") |
InStr(S, "cd")
InStrRev(S, "cd") |
|
|
|
|
|
s.Find("cd") |
s.indexOf("cd")
s.lastIndexOf("cd") |
s.indexOf("cd")
s.lastIndexOf("cd") |
|
INSTR(S,'cd') |
INSTR(S,'cd') |
|
置換 |
MID$(S$,4,2)="zz" |
Mid(S, 4, 2) = "zz" |
|
|
|
|
|
strncpy(s+3,"zz",2); |
|
|
|
|
|
|
|
なし |
R = Replace(S, "cd", "zz") |
R = Replace(S, "cd", "zz") |
|
|
|
$_ = $s;
s/cd/zz/;
$r = $_;
$s =~ s/cd/zz/; |
|
|
|
r=s.replace("cd","zz"); |
|
TRANSLATE(S,'cd','zz') |
TRANSLATE(S,'cd','zz') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
文字判断 |
|
|
|
|
|
|
|
isalpha(字) |
|
|
|
|
|
|
(alpha-char-p 字) |
|
|
isupper(字)
islower(字) |
Character.isUpperCase(字)
Character.isLowerCase(字) |
(upper-case-p 字)
(lower-case-p 字) |
IsNumeric(S) |
IsNumeric(S) |
isdigit(字) |
Character.isDigit(字) |
(digit-char-p 字 10) |
|
|
isalnum(字) |
|
(alphanumericp 字) |
大小文字変換 |
なし |
L = LCase(S)
L = StrConv(S, vbLowerCase) |
L = LCase(S) |
|
|
|
|
strlwr(s);
c=tolower('A'); |
s.MakeLower(); |
l=s.toLowerCase(); |
l=s.toLowerCase(); |
|
LOWER(S) |
LOWER(S) |
(string-downcase s)
(char-downcase 字) |
なし |
U = UCase(S)
U = StrConv(S, vbUpperCase) |
U = UCase(S) |
|
|
|
|
strupr(s);
c=toupper('a'); |
s.MakeUpper(); |
u=s.toUpperCase(); |
u=s.toUpperCase(); |
|
UPPER(S) |
UPPER(S) |
(string-upcase s)
(char-upcase 字) |
数値変換 |
N=VAL("12") |
N = Val("12") |
N = CInt("12") |
|
|
|
|
n=atoi("12");
sscanf("12","%d",&n); |
|
n=Integer.parseInt("12"); |
n=parseInt("12");
n="12" * 1;
n=parseFloat("12.3"); |
|
TO_NUMBER('12') |
TO_NUMBER('12') |
|
N=VAL("&HC") |
N = Val("&HC") |
|
Convert.ToInt32("C", 16) |
|
|
|
sscanf("c","%x",&n); |
|
parseInt("0xc")は駄目 |
n=parseInt("0xc");
n=eval("0xc"); |
|
|
|
|
十進文字変換 |
A$=STR$(12) |
S = Str(12) |
|
Convert.ToString(12, 10) |
|
DEFを使って同じエリアをPICとCHARに定義 |
|
itoa(12,s,10);
sprintf(s,"%d",12); |
s.Format("%d",12); |
s=""+12;
s=String.valueOf(12);
s=Integer.toString(12);
s=new Integer(12).toString(); |
s=""+12;
s=new String(12); |
|
TO_CHAR(12) |
TO_CHAR(12) |
(format nil "~D" 12)
(format nil "~10R" 12) |
二進 |
A$=BIN$(12) |
なし |
|
Convert.ToString(12, 2) |
|
|
|
itoa(12,s,2); |
|
s=Integer.toBinaryString(12);
s=Integer.toString(12,2); |
|
|
|
|
(format nil "~B" 12) |
八進 |
A$=OCT$(12) |
S = Oct(12) |
S = Oct(12) |
Convert.ToString(12, 8) |
|
|
|
itoa(12,s,8);
sprintf(s,"%o",12); |
s.Format("%o",12); |
s=Integer.toOctalString(12);
s=Integer.toString(12,8); |
|
|
|
|
(format nil "~O" 12) |
十六進 |
A$=HEX$(12) |
S = Hex(12) |
S = Hex(12) |
Convert.ToString(12, 16) |
|
|
|
itoa(12,s,16);
sprintf(s,"%x",12); |
s.Format("%x",12); |
s=Integer.toHexString(12);
s=Integer.toString(12,16); |
|
|
|
|
(format nil "~X" 12) |
書式付変換 |
PRINT USING "書式";値 |
Format$(値,"書式")
WorksheetFunction.Text(値,"書式") |
|
String.Format("書式", 値) |
write(値:書式) |
PIC'書式'
PUT EDIT |
printf 書式,値; |
printf("書式",値); |
CString::Format("書式",値)
TRACE("書式",値) |
|
|
Format(値, "書式") |
TO_CHAR(値,"書式") |
TO_CHAR(値,"書式") |
(format nil "書式" 値) |
#### |
#### (右寄せにならないが…) |
|
|
4 |
ZZZ9 |
%4d |
%4d |
%4d |
|
|
|
9999 |
9999 |
~4D |
|
0000 |
|
|
|
9999 |
|
%04d |
%04d |
|
|
0000 |
0000 |
0000 |
~4,'0D |
+### |
なし |
|
|
|
---9 |
|
%+4d |
%+4d |
|
|
|
S999 |
S999 |
|
###.## |
##0.00 |
|
|
6:2 |
ZZ9V.99 |
%6.2f |
%6.2f |
%6.2f |
|
|
|
999.99 |
999.99 |
~6,2F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
マルチバイト文字 |
|
|
|
|
|
|
|
|
|
Charset.defaultCharset()
System.getProperty("file.encoding") |
|
Encoding.Default |
|
|
|
|
|
|
Dim str As String =
Encoding.GetEncoding("shift_jis").GetString(バイト配列); |
|
|
|
|
|
String str = new String(バイト配列,
"MS932"); |
|
string str =
Encoding.GetEncoding("shift_jis").GetString(バイト配列); |
|
|
|
|
|
|
Dim buf() As Byte =
Encoding.GetEncoding("shift_jis").GetBytes(str); |
|
|
|
|
|
byte[] buf = str.getBytes("MS932");
引数が無いと、デフォルトのキャラセット |
|
byte[] buf =
Encoding.GetEncoding("shift_jis").GetBytes(str); |
|
|
|