半字符串应返回字符串中的所有其他字符,它应返回起始字符。例如,halfOfString(“Qbkm Zgis”, 0)
返回字符串“Qk gs”,而调用 halfOfString(“Qbkm Zgis”, 1)
返回字符串“bmZi” ”。一旦你到达一个空格,后面的字母就应该被计算在内,然后你继续获取所有其他字母。
我的代码没有按预期方式工作,我一直在尝试用不同的方式修复,但空格字符使一切都失败了。
public String halfOfString(String message,int start ){
StringBuilder halfString = new StringBuilder();
int length= message.length();
for (int k=start;k<length;k++){
char achar = message.charAt(k+1);
if (Character.isLetter(achar)!=true){
achar='\0';
}
System.out.println("this is char"+"\t"+achar);
halfString.append(achar );
System.out.print("this is halfString in the forloop"+"\t"+halfString);
}
return halfString.toString();
}
最佳答案
您需要执行 chatAt(k)
而不是 k+1
,并且不需要检查它是否是空格。还可以使用 k += 2
而不是 k++
(正如您想要的所有其他字符一样)。最后,您不需要将长度解析为变量。您可以直接检查长度:
public static String halfOfString(String message,int start ){
StringBuilder halfString = new StringBuilder();
for (int k=start;k<message.length();k+=2){
char achar = message.charAt(k);
halfString.append(achar);
}
return halfString.toString();
}
输出:
//with 0 as start:
Qk gs
//With 1 as start:
bmZi
关于java - 如何使用 stringbuilder 添加每隔一个字符并以空格重新开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51791354/