ちょっと混乱しています。どこにも答えが載っていませんでした ;(
文字列の配列を持っています。
String[] arr = ["1", "2", "3"];
で文字列に変換しています。
String str = Arrays.toString(arr);
System.out.println(str);
文字列 "123"
が得られると思ったのですが、代わりに文字列 "[1,2,3]"
が得られました。
javaではどうすればいいのでしょうか?私はEclipse IDEを使用しています。
String[] strArr = {"1", "2", "3"};
StringBuilder strBuilder = new StringBuilder();
for (int i = 0; i < strArr.length; i++) {
strBuilder.append(strArr[i]);
}
String newString = strBuilder.toString();
ここで、文字列連結よりも優れた解決策があることを説明します。2つの文字列を連結すると、新しい文字列オブジェクトが作成され、1文字ずつコピーされます。
事実上、コードの複雑さは、配列のサイズの2乗のオーダーになります。
(1+2+3+ ... n
これは反復ごとにコピーされる文字の数です).
StringBuilder は 'copy to a string'を一度だけ行うので、この場合の複雑さは O(n)
になります。
Arrays.toString(arr);
の出力が[1,2,3]となり、それを文字列.に格納して印刷すると、[1,2,3]の出力が得られます。
123の出力を得たい場合は次のようにします。
public static void main(String[] args) {
String[] arr= {"1","2","3"};
String output ="";
for(String str: arr)
output=output+str;
System.out.println(output);
}
出力。
123