http://www.ne.jp/asahi/hishidama/home/tech/lang/string.html
MSX-BASIC | VBA | VBS | VB.NET | PASCAL | PL/I | Perl | C言語 | VC++(MFC) | Java | JavaScript | C#(.NET) | SQL(Oracle) | PL/SQL(Oracle) | Lisp | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
型 | 変数の末尾に「$ 」又は DEFSTR |
String |
String |
String |
array[1..n] of char |
CHAR |
なし | char[] |
CString |
String |
String |
string |
CHAR |
CHAR |
string |
StringBuffer |
StringBuilder |
||||||||||||||
制限 | 256文字以内? | 文字列定数を代入する際には、配列数が一致している必要がある。 | 変数定義時に長さ指定 | 変数定義時に長さ指定 文字列の末尾には暗黙に'\0'が存在するので、その1バイトもカウントする必要あり |
内部ではUNICODEで処理される | 型とバージョンによって最大長が異なる | 型とバージョンによって最大長が異なる | ||||||||
定数の例 | "abc" |
"あいう" |
"あいう" |
"あいう" |
'abc' |
'ABC' |
'あいう' 「'」は中身そのまま、「"」だと中の変数等を展開する |
"あいう" |
"あいう" |
"あいう" |
"あいう" |
"あいう" …@を付けると、\がエスケープ文字でなくなる |
'あいう' |
'あいう' |
"ABC" |
CHR$(0) |
vbNullChar |
ControlChars.NullChar |
"\0" |
"\0" |
"\0" |
"\0" |
|||||||||
"'"+CHR$(34) |
"'""" |
"'" + ControlChars.Quote |
'''"' |
q/'"/ |
"\'\"" |
"\'\"" |
"\'\"" |
"\'\"" |
"\'\"" |
'''"' |
'''"' |
"\'\"" |
|||
CHR$(9) |
vbTab |
ControlChars.Tab |
"\t" |
"\t" |
"\t" |
"\t" |
|||||||||
改行 | vbNewLine |
Environment.NewLine |
System.getProperty("line.separator") |
Environment.NewLine |
|||||||||||
CHR$(13)+CHR$(10) |
vbCrLf |
vbCrLf |
"\n" |
"\r\n" |
"\r\n" |
"\r\n" |
"\n" |
||||||||
代入 | S$="abc" |
Dim S As String |
Dim S |
Dim S As String |
var s:array[1..3] of char; |
DCL S CHAR(4); |
$s='あいう'; |
char s[16]; |
CString s; |
String s; |
var s; |
S='あいう' UPDATE文 |
S:='あいう'; |
||
長さ | LEN(A$) |
Len(S) |
Len(S) |
strlen(s) |
s.GetLength() |
s.length() |
s.length |
s.Length |
LENGTH(S) |
LENGTH(S) |
|||||
MSX-BASIC | VBA | VBS | VB.NET | PASCAL | PL/I | Perl | C言語 | VC++(MFC) | Java | JavaScript | C#(.NET) | SQL(Oracle) | PL/SQL(Oracle) | Lisp | |
比較 | A$=B$ |
A=B |
$a eq $b |
strcmp(a,b)==0 |
a==b |
a.equals(b) |
a==b |
string.compare(a,b)==0 |
A=B |
A=B |
(string= a b) |
||||
A$<B$ |
A<B |
$a lt $b |
strcmp(a,b)<0 |
a<b |
a.compareTo(b)<0 |
a<b |
string.compare(a,b)<0 |
A<B |
A<B |
(string< a b) |
|||||
なし | StrComp(a,b,vbTextCompare) |
strcmpi(a,b) |
a.CompareNoCase(b) |
a.compareToIgnoreCase(b) |
(string-equal a b) |
||||||||||
結合 | S$=S$+"def" |
S=S+"えお" 「+」は、両方とも文字列でないと駄目。「&」は文字列に変換して結合してくれる。なお、変数の末尾と「&」をくっつけてはいけない(Longの変数だと勘違いされてしまう) |
S = S &"えお" |
S = S + "えお" |
S=S||'DEF'; |
$s=$s . 'えお'; |
strcat(s,"えお"); 定数同士であれば、「 "あい" "えお" 」の様に文字列を並べるだけで結合される(コンパイル時) |
s+="えお"; |
s+="えお"; |
s+="えお"; |
s+="えお"; |
S||'えお' |
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 = 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 = 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); |
||||||||||
MSX-BASIC | VBA | VBS | VB.NET | PASCAL | PL/I | Perl | C言語 | VC++(MFC) | Java | JavaScript | C#(.NET) | SQL(Oracle) | PL/SQL(Oracle) | Lisp | |
同一文字複数 | 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); |
char[] cs = new char[10]; |
|||||||||
分割 | なし | 配列名 = Split(変数, "文字") |
@配列名=split(/文字/,$変数); |
strtok |
配列名=変数.split(文字); |
||||||||||
連結 | 変数 = Join(配列名, "文字") |
||||||||||||||
空白除去 | なし | 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") |
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); |
(char s n) |
||||||
文字置換 | MID$(S$,N,1)=C$ |
Mid(S, n, 1) = C |
なし | s[n]=c; |
s.SetAt(n,c); |
||||||||||
文字検索 | なし | なし | なし | strchr(s,c) 見つけた位置のポインターを返す |
s.Find(c) |
s.indexOf(c) |
s.indexOf(c) |
||||||||
検索 | INSTR(S$,"cd") |
InStr(S, "cd") |
InStr(S, "cd") |
s.Find("cd") |
s.indexOf("cd") |
s.indexOf("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; |
r=s.replace("cd","zz"); |
TRANSLATE(S,'cd','zz') |
TRANSLATE(S,'cd','zz') |
|||||||||
MSX-BASIC | VBA | VBS | VB.NET | PASCAL | PL/I | Perl | C言語 | VC++(MFC) | Java | JavaScript | C#(.NET) | SQL(Oracle) | PL/SQL(Oracle) | Lisp | |
文字判断 | isalpha(字) |
(alpha-char-p 字) |
|||||||||||||
isupper(字) |
Character.isUpperCase(字) |
(upper-case-p 字) |
|||||||||||||
IsNumeric(S) |
IsNumeric(S) |
isdigit(字) |
Character.isDigit(字) |
(digit-char-p 字 10) |
|||||||||||
isalnum(字) |
(alphanumericp 字) |
||||||||||||||
大小文字変換 | なし | L = LCase(S) |
L = LCase(S) |
strlwr(s); |
s.MakeLower(); |
l=s.toLowerCase(); |
l=s.toLowerCase(); |
LOWER(S) |
LOWER(S) |
(string-downcase s) |
|||||
なし | U = UCase(S) |
U = UCase(S) |
strupr(s); |
s.MakeUpper(); |
u=s.toUpperCase(); |
u=s.toUpperCase(); |
UPPER(S) |
UPPER(S) |
(string-upcase s) |
||||||
数値変換 | N=VAL("12") |
N = Val("12") |
N = CInt("12") |
n=atoi("12"); |
n=Integer.parseInt("12"); |
n=parseInt("12"); |
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"); |
||||||||||
十進文字変換 | A$=STR$(12) |
S = Str(12) |
Convert.ToString(12, 10) |
DEFを使って同じエリアをPICとCHARに定義 | itoa(12,s,10); |
s.Format("%d",12); |
s=""+12; |
s=""+12; |
TO_CHAR(12) |
TO_CHAR(12) |
(format nil "~D" 12) |
||||
二進 | A$=BIN$(12) |
なし | Convert.ToString(12, 2) |
itoa(12,s,2); |
s=Integer.toBinaryString(12); |
(format nil "~B" 12) |
|||||||||
八進 | A$=OCT$(12) |
S = Oct(12) |
S = Oct(12) |
Convert.ToString(12, 8) |
itoa(12,s,8); |
s.Format("%o",12); |
s=Integer.toOctalString(12); |
(format nil "~O" 12) |
|||||||
十六進 | A$=HEX$(12) |
S = Hex(12) |
S = Hex(12) |
Convert.ToString(12, 16) |
itoa(12,s,16); |
s.Format("%x",12); |
s=Integer.toHexString(12); |
(format nil "~X" 12) |
|||||||
書式付変換 | PRINT USING "書式";値 |
Format$(値,"書式") |
String.Format("書式", 値) |
write(値:書式) |
PIC'書式' |
printf 書式,値; |
printf("書式",値); |
CString::Format("書式",値) |
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 |
||||||
MSX-BASIC | VBA | VBS | VB.NET | PASCAL | PL/I | Perl | C言語 | VC++(MFC) | Java | JavaScript | C#(.NET) | SQL(Oracle) | PL/SQL(Oracle) | Lisp | |
マルチバイト文字 |
Charset.defaultCharset() |
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); |
言語 | ASCII | JIS | SJIS | EUC | UTF8 | UTF16 | Unicode | 備考 | 更新日 |
---|---|---|---|---|---|---|---|---|---|
java(コンパイルオプション・ファイル) | US-ASCII |
ISO-2022-JP |
MS932 |
EUC-JP |
UTF-8 |
UTF-16 |
→Javaで使える名称一覧 | 2007.2.13 | |
C# VB.NET |
Encoding. |
Encoding. |
Encoding. |
Encoding. |
Encoding. |
Encoding. |
System.Text.Encoding | 2007.3.15 | |
HTML(charset) | us-ascii |
ISO-2022-JP |
Shift_JIS
x-sjis(Netscape拡張) |
EUC-JP
x-euc-jp |
utf-8 |
unicode |
大文字でも小文字でもどちらでも可 | ||
XML(encoding) | ISO-2022-JP |
Shift_JIS |
euc-jp |
UTF-8 |
省略時はUTF-8 | ||||
コマンドプロンプト | us |
jp |
2006.7.24 | ||||||
VC++コードページ | 0000 |
03a4 (十進数に直すと932) |
04b0 |
2006.9.9 | |||||
UNIX(LANG) | ja_JP.PCK |
ja |
ja_JP.UTF-8 |
||||||
iconv | jis |
SJIS |
eucJP |
UTF-8 |
man iconv_ja | ||||
Oracle(NLS_LANG) | Japanese_Japan. |
Japanese_Japan. |
Japanese_Japan. |
Japanese_Japan. |
|||||
PostgreSQL (PGCLIENTENCODING) (\encoding) |
SQL_ASCII |
SJIS |
EUC_JP |
UNICODE |
[カテゴリ: プログラミング全般]
[通知用URL]
Tweet
最終更新時間:2008年05月25日 22時59分12秒