Concat是字符串的两个第一个字符

时间:2014-08-17 13:08:41

标签: java string

我有一个String s = "abcd",我想单独String c,让我们说出String s的两个第一个字符。我用:

String s = "abcd";
int i = 0;
String c = s.charAt(i) + s.charAt(i+1);
System.out.println("New string is: " + c);

但是这给了error: incompatible types。我该怎么办?

3 个答案:

答案 0 :(得分:4)

你应该连接两个字符串而不是char s。请参阅String#charAt,它会返回char。所以你的代码相当于:

String c = 97 + 98; //ASCII values for 'a' and 'b'

为什么呢?请参阅JLS - 5.6.2. Binary Numeric Promotion

你应该这样做:

String c = String.valueOf(s.charAt(i)) + String.valueOf(s.charAt(i+1));

在您了解了问题后,更好的解决方案是:

String c = s.substring(0,2) 

更多阅读:

答案 1 :(得分:1)

你应该做的是

String c = s.substring(0, 2);

现在为什么你的代码不起作用?因为您要添加两个char值,所以使用整数加法来执行此操作。因此,结果是一个整数,不能将其赋值给String变量。

答案 2 :(得分:0)

String s = "abcd";

String s的前两个字符

String firstTwoCharacter = s.substring(0, 2);

    char c[] = s.toCharArray();
    //Note that this method simply returns a call to String.valueOf(char)
    String firstTwoCharacter = Character.toString(c[0])+Character.toString(c[1]);

    String firstTwoCharacter = String.valueOf(c[0])+ String.valueOf(c[1]);