-1

この for ループを使用して、文字列から配列の個々の文字を調べています。

for(int i=0;i< array;i++){

g.drawString を使用して文字を 1 つずつ印刷する必要があります。そのため、配列内の位置 [i] にある文字を文字列に変換する必要があります。どうすればいいですか?

4

6 に答える 6

2

あなたが使用することができます:

String.valueOf(yourChar)

したがって、ループは次のようになります。

for(int i=0;i< array;i++){
 g.drawString(String.valueOf(yourString.charAt(i));
}
于 2013-02-08T11:54:49.810 に答える
1

簡単です。"" + array.charAt(i)

于 2013-02-08T11:55:14.323 に答える
0

これを行うだけです:

char[] array;

g.drawString(String.valueOf(array[i]));
于 2013-02-08T11:57:11.013 に答える
0

これがベスト プラクティスの方法です。

char[] array;
for (char c : array) {
    String s = String.valueOf(c);
    // do something with s
}
于 2013-02-08T11:58:56.753 に答える
0

通常、これを行う最善の方法は、ソースが String の場合です

str.substring(i, i+1); // If you have a string.

不必要な文字バッファーのコピーを避けるためです。Java の一部のバージョン (明らかに JDK7u5 以前) は、既存の文字バッファーを再利用できるため、余分なオブジェクトの作成を回避できます。(参照:この変更のアナウンスは、これが JDK7u5 以前に適用されることを示しています)

2 つの非常に明白な代替手段があります (これは、独自のchar[]データ ソースがある場合にも機能します)。

String.valueOf(str.charAt(i)); // If you have a String
String.valueOf(chararray[i]); // If you have a char[]

Stringこれらは実際には oneと oneの 2 つのオブジェクトを作成しますchar[1]

そして、醜いハックリングがあります:

"" + str.charAt(i); // If you do do not care about doing things right.

これにより、通常、単一の追加操作で文字列バッファーが作成され、文字列に変換されます。このコードをホット ループで使用すると、アプリケーションのパフォーマンスが大幅に低下する可能性があります。コードは非常に単純に見えますが、おそらく次のように変換されます。

StringBuilder temp = new StringBuiler("");
temp.append(str.chatAt(i));
temp.toString();

そして、このオーバーヘッドは、API で使用できる 2 つのクリーンなソリューション (文字を文字列に変換することと、部分文字列を構築すること) があることを考えると、実際にはまったく役に立ちません。

于 2013-02-08T11:59:07.003 に答える
0

このようなもの

char[] chars = {'a','b','c'};
    String[] strings = new String[chars.length];
    for (int i = 0; i < chars.length; i++) {
        strings[i] = String.valueOf(chars[i]);
    }
于 2013-02-08T11:59:56.530 に答える