複雑な構文解析は Perl5Util(Jakarta ORO) や java.util.regex を使う、
もっと複雑になるとXMLパーサーやJavaCCの出番になるけど
String str = "abc,def,ghi";
String[] columns = str.split(",");
System.out.println( columns.length );
for( String s : columns ){
System.out.println( s );
}
3 abc def ghi
String str = "abc,def,ghi,";
String[] columns = str.split(",");
System.out.println( columns.length );
for( String s : columns ){
System.out.println( s );
}
3 abc def ghi
StringTokenizer tokenizer = new StringTokenizer( string , "," );
int cnt = 0;
while( tokenizer.hasMoreToken() ){
data[ cnt++ ] = Integer.parseInt( tokenizer.nextToken().trim() ) );
}
値にパースするときには、切り出した文字をtrim()するのがミソstring = string.charAt( string.length() - 1 ) == ',' ? string : string + ",";
StringTokenizer tokenizer = new StringTokenizer( string , "," );
int dataSize = tokenizer.countTokens() - 1;
for( int cnt = 0 ; cnt < dataSize ; cnt++ ){
data[ cnt ] = Integer.parseInt( tokenizer.nextToken().trim() );
}StringTokenizer tokenizer = new StringTokenizer( string , "," );
int dataSize = tokenizer.countTokens();
dataSize = dataSize - dataSize % 3
for( int cnt = 0 ; cnt < dataSize ; cnt+=3 ){
x = Integer.parseInt( tokenizer.nextToken().trim() );
y = Integer.parseInt( tokenizer.nextToken().trim() );
data[x][y] = Integer.parseInt( tokenizer.nextToken().trim() );
}
不正な入力に対する例外処理が弱いような気がするけど・・・そういう例外処理がひつようなら java.util.Regex を使って正規表現で切り出した方が賢い