如何将单个字符从字符数组转换为字符串?

时间:2013-02-08 11:52:44

标签: java arrays for-loop character

我正在使用for循环来查看字符串中我的数组的单个字符。

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

我需要使用g.drawString逐个打印字符。因此,我需要将数组中位置[i]处的字符转换为字符串。我该怎么做呢?

6 个答案:

答案 0 :(得分:2)

您可以使用:

String.valueOf(yourChar)

所以你的循环将是:

for(int i=0;i< array;i++){
 g.drawString(String.valueOf(yourString.charAt(i));
}

答案 1 :(得分:1)

这很简单:"" + array.charAt(i)

答案 2 :(得分:0)

这样做:

char[] array;

g.drawString(String.valueOf(array[i]));

答案 3 :(得分:0)

这是最佳做法:

char[] array;
for (char c : array) {
    String s = String.valueOf(c);
    // do something with s
}

答案 4 :(得分:0)

通常,如果您的来源是字符串,那么最好的方法是

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

因为它避免了不必要的字符缓冲区副本某些版本的Java(显然是JDK7u5及更早版本)可以重用现有的字符缓冲区,这样可以避免额外的对象创建。 (参见:this announcement 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]

然后就是丑陋的骚扰:

"" + 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中有两个干净的解决方案:将字符转换为字符串,并构造子字符串。

答案 5 :(得分: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]);
    }