我正在使用for循环来查看字符串中我的数组的单个字符。
for(int i=0;i< array;i++){
我需要使用g.drawString逐个打印字符。因此,我需要将数组中位置[i]处的字符转换为字符串。我该怎么做呢?
答案 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]);
}