如何使用charAt逐字符输入字符串变量?

时间:2016-03-01 16:54:23

标签: java string char

我想使用String将s1逐个字符中的finalstring复制到字符串String.charAt()中。此代码有效:

public static String Comparison(String s1) {
    String finalstring = "" + s1.charAt(0); // Doubt in this line

    for (int j = 1; j < s1.length(); j++) {
        if(s1.charAt(j) != s1.charAt(j - 1)) {
            finalstring += s1.charAt(j);
        }
    }
    return finalstring;
}

然而,当我用这个替换标记的行...

    String finalstring = s1.charAt(0);

...编译器为该行发出错误:&#34;无法从char转换为String&#34;。为什么这种变化会导致错误?

2 个答案:

答案 0 :(得分:1)

在Java(和大多数类型语言)中,String与Character不同。

String.charAt()返回char而不是String。

""+s1.charAt(0)将空字符串与char连接起来。结果是一个String,因此可赋值给finalstring变量。

答案 1 :(得分:0)

String.charAt()返回char而不是String。因此,您必须附加""才能将其转换为字符串

就是这样。

String x = 'c'+"";

您也可以通过

char转换为String
String.valueOf('c');