通过for循环在字符串中插入字符

时间:2017-01-27 17:02:54

标签: java string loops

我想在带有for循环的String中插入字符。我知道如何在没有for循环的情况下做到这一点:

String s = "Hello";
String x = " ";
x = s.substring(0, 1) + "*" +s.substring(1, 2) + "*" + s.substring(2,3) +"*"+s.substring(3,4) +"*" +s.substring(4,5);
System.out.println(x);

但是现在谈到循环,我有一个问题。我的方法如下:

String y ="";
for(int i= 0; i<=s.length(); i++){
    y = s.substring(0, i) + "*" +s.substring(i);
}
System.out.println(y);

6 个答案:

答案 0 :(得分:3)

在Java 8+中,您可以执行以下操作

String x = "Hello";
String result = Stream.of(x.split(""))
                      .collect(Collectors.joining("*"));

结果H*e*l*l*o

基本上,您正在创建长度为1的字符串流,并使用使用*连接它们的收集器来收集它们。在这种方法中,您不必考虑任何空间情况,如last / first元素或从end等删除额外*。

答案 1 :(得分:3)

        String s = "Hello";
        String x = String.join("*",s.split(""));
        System.out.println(x);

答案 2 :(得分:2)

怎么样:

    String input = "TestInput";

    StringBuilder b = new StringBuilder();
    b.append(input.charAt(0));
    for (int i = 1; i < input.length(); i++) {
        b.append("*").append(input.charAt(i));
    }
    System.out.println(b);
}

给出:

T*e*s*t*I*n*p*u*t

这是你想要的吗?

修改 Pshemo的建议 - 使用StringJoiner(Java 8解决方案)

StringJoiner sj = new StringJoiner("*");
        for (int i = 0; i < input.length(); i++) {
            sj.add(input.substring(i, i + 1));
        }
        System.out.println(sj.toString());

没有StringBuilder版本:

  String input="TestInput";
    String y = "";
    for (int i = 0; i < input.length(); i++) {
        y += "*" + input.charAt(i);
    }

对于你的知识 - 不鼓励使用字符串连接。最好使用StringBuilderStringJoiner

答案 3 :(得分:0)

你可以使用charAt方法,在你的第二个代码中,只要知道字符串边界,而不是StringIndexOutOfBoundException

String x = "Hello";
String y =String.valueOf(x.charAt(0));
for(int i= 1; i<x.length(); i++)
   y += "*"+x.charAt(i);
System.out.println(y);

我的建议是使用StringBuilder而不是字符串,它更强高效

String x = "Hello";
StringBuilder y = new StringBuilder(String.valueOf(x.charAt(0)));
for(int i= 1; i<x.length(); i++)
   y.append("*").append(x.charAt(i));
System.out.println(y);

在此示例中,两个代码的输出均为H*e*l*l*o

答案 4 :(得分:0)

public static String insertChar(String str, char character){

    char[] charArray=str.toCharArray();
    String result="";
    for(int i=0;i<charArray.length;i++){
        result=result+charArray[i];
        if(i<charArray.length-1){
            result=result+character;
        }
    }
    return result;
}

的System.out.println(insertChar(&#34;你好&#34;&#39; *&#39;));

答案 5 :(得分:0)

您可以使用循环(如您所述)跟随以下代码段,以将字符添加到字符串。

{{1}}