-1

我正在使用这个 for 循环从字符串中遍历我的数组的各个字符。

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

我需要使用 g.drawString 一个一个地打印字符。因此,我需要将数组中位置 [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[] 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 回答
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 和更早版本)可以重用现有的字符缓冲区,这样可以避免创建额外的对象。(见:this notice of the change,表明这适用于JDK7u5及之前的版本)

有两种非常明显的选择(如果您有自己char[]的数据源,这个也可以使用):

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

这些实际上会创建两个对象:一个String和一个char[1]

然后是丑陋的hackling:

"" + 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 中有两种干净的解决方案可用,这种开销实际上是毫无用处的:将字符转换为字符串,以及构造子字符串。

于 2013-02-08T11:59:07.003 回答