我有一个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
。我该怎么办?
答案 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]);