Java 如何使用utlizie stringbuilder添加其他字符并在空格处重新启动?

Java 如何使用utlizie stringbuilder添加其他字符并在空格处重新启动?,java,for-loop,char,iteration,Java,For Loop,Char,Iteration,半字符串应该每隔一个字符返回一个字符串,它应该返回起始字符。例如,halfOfString(“Qbkm Zgis”,0)返回字符串“Qk gs”,调用halfOfString(“Qbkm Zgis”,1)返回字符串“bmZi”。一旦你到达一个空格,后面的字母应该被计算,然后你继续每隔一个字母 我的代码没有按预期的方式工作,我一直在尝试用不同的方式修复,但是空格字符会把一切都抛在脑后 public String halfOfString(String message,int start ){

半字符串应该每隔一个字符返回一个字符串,它应该返回起始字符。例如,
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();


}
公共字符串(字符串消息,int start){
StringBuilder半字符串=新的StringBuilder();
int length=message.length();

对于(int k=start;k你需要做
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();
        }

谢谢你,代码是对的。你怎么知道你不需要检查空格?我正在努力思考我的代码。我还以为空格被算作一个字符呢?@Eli你为什么要检查空格?它会像其他任何
char
在某些编程语言中一样被追加空格。我很抱歉仍在学习java。
//with 0 as start:
Qk gs
//With 1 as start:
bmZi