我正在尝试调用一个方法来打印“R,a,b,b,i,t”。如果传递空字符串(“”),我的方法应该不打印。
public static void printLetters(String a) {
if (a == "")
System.out.println(a);
else
for (int i = 0; i <= a.length() - 1; i++) {
char rabb = (a.charAt(i));
System.out.print(rabb + ",");
if (i != a.length() - 1) {
System.out.print(" ");
}
}
}
现在的问题是我正在打印“r,a,b,b,它”,我不知道为什么。似乎if(i!=a.length()-1){
无法消除最后一个逗号。
答案 0 :(得分:3)
首先,永远不要使用==
进行字符串比较,请使用.equals
:
if ("".equals(a))
在for循环中,提取角色并仅打印它。然后,如果您检测到您不在字符串的末尾,则打印逗号和空格。
char rabb = (a.charAt(i));
System.out.print(rabb);
if (i != a.length() - 1) {
System.out.print(", ");
}
答案 1 :(得分:0)
这样的东西?
char rabb = (a.charAt(i));
if(i==a.lenght()-1){
System.out.print(rabb + ",");
}
else
System.out.print(rabb);
另外,你的字符串比较是错误的。使用equals方法比较字符串。
if ("".equals(a))
您还可以使用String.isEmpty()
检查字符串是否为空
if (a.isEmpty())
答案 2 :(得分:0)
更容易删除最后一个字符,因为昏迷是最后一个字符,只需使用String类方法根据位置删除它
String myString = "a,b,c,d,"
String newString = myString.subString(0,myString.length()-2);
答案 3 :(得分:0)
static String comma(String a) {
if (a.length() == 0)
return "";
char[] c = new char[a.length()+a.length()-1];
for (int i = 0; i < a.length()*2-2; i+=2) {
c[i] = a.charAt(i/2);
c[i+1] = ',';
}
c[c.length-1] = a.charAt(a.length()-1);
return new String(c);
}