Java 以下字符串程序的输出不正确 公共类noofcons字母表{ 公共静态void main(字符串[]args){ String str=“aaabddaabbcc”; 整数计数=1; 字符串finalString=“”; 对于(int i=1;i
这就是问题所在:Java 以下字符串程序的输出不正确 公共类noofcons字母表{ 公共静态void main(字符串[]args){ String str=“aaabddaabbcc”; 整数计数=1; 字符串finalString=“”; 对于(int i=1;i,java,string,Java,String,这就是问题所在: public class NoOfConsAlphabet { public static void main(String[] args) { String str="aaabbddaabbcc"; int count=1; String finalString=""; for(int i=1;i<str.length()-1;i++) { if(str.charAt(i)==str.charA
public class NoOfConsAlphabet {
public static void main(String[] args) {
String str="aaabbddaabbcc";
int count=1;
String finalString="";
for(int i=1;i<str.length()-1;i++)
{
if(str.charAt(i)==str.charAt(i+1))
{
++count;
}
else
{
finalString+=str.charAt(i)+count+",";
count=1;
}
}
System.out.println(finalString);
}
}
这是在执行一个
char
+int
转换,这仅仅是一个整数运算,因为+
是左关联的。当”,“
与之连接时,生成的整数将转换为字符串
因此:
str.charAt(i)+count+","
相当于:
finalString+=str.charAt(i)+count+",";
我建议您使用:
int tmp1 = str.charAt(i)+count;
String tmp2 = tmp1 + ",";
finalString += tmp2;
强制字符串连接。更好的方法是使用StringBuilder
:
String.valueOf(str.charAt(i)) + count
这更清楚、更有效:)这就是问题所在:
public class NoOfConsAlphabet {
public static void main(String[] args) {
String str="aaabbddaabbcc";
int count=1;
String finalString="";
for(int i=1;i<str.length()-1;i++)
{
if(str.charAt(i)==str.charAt(i+1))
{
++count;
}
else
{
finalString+=str.charAt(i)+count+",";
count=1;
}
}
System.out.println(finalString);
}
}
这是在执行一个
char
+int
转换,这仅仅是一个整数运算,因为+
是左关联的。当”,“
与之连接时,生成的整数将转换为字符串
因此:
str.charAt(i)+count+","
相当于:
finalString+=str.charAt(i)+count+",";
我建议您使用:
int tmp1 = str.charAt(i)+count;
String tmp2 = tmp1 + ",";
finalString += tmp2;
强制字符串连接。更好的方法是使用StringBuilder
:
String.valueOf(str.charAt(i)) + count
这更清晰、更高效:)您实际上添加了:
builder.append(str.charAt(i)).append(count).append(",");
由于+
是左关联的,因此您最终会执行以下操作:
char + int + String
因此,int+String
;只有在该步骤中才会发生字符串连接
解决方法是使用String.format()
:
您基本上添加了:
builder.append(str.charAt(i)).append(count).append(",");
由于+
是左关联的,因此您最终会执行以下操作:
char + int + String
因此,int+String
;只有在该步骤中才会发生字符串连接
解决方法是使用String.format()
:
在
char
和int
上使用+
运算符将导致一个char
表示两者的总和(并且不连接)。有关详细说明和例外情况,请参阅答案
那么,声明呢
String.format("%c%d,", str.charAt(i), count);
最后是char+int加法,而不是字符串串联
要连接,请先将
str.charAt(i)+
转换为字符串
。对achar
和int
使用+
运算符,得到表示两者之和的char
。有关详细解释和例外情况,请参阅答案
那么,声明呢
String.format("%c%d,", str.charAt(i), count);
最后是char+int加法,而不是字符串串联
要连接,首先将
str.charAt(i)+
转换为String
。char
+int
=>int
!char
+int
!