java - 如何使用 stringbuilder 添加每隔一个字符并以空格重新开始?

标签 java for-loop char iteration

半字符串应返回字符串中的所有其他字符,它应返回起始字符。例如,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/

相关文章:

java - 无法以联觉方式绘制像素、Pi 数

java - 通过网络发送具有自定义属性的文件

java - 如何构建良好的 Java GUI 应用程序设计模式?

iphone - 将 NSString* 转换为 char?

c - 如何从 C 中的 char 函数返回字符串

java - 我是否需要处理从 Component.getGraphics() 返回的图形上下文?

c# - 形成两个对象列表联合的最简单方法(包含 Int 和字符串值)

c - 输出不符合预期

将 for 循环中的 rbind 替换为 lapply? ( hell 第二圈)

java - 填充二维数组时如何生成唯一字符?