在用户输入的字符串之间添加空格

时间:2015-03-31 08:18:33

标签: java string java.util.scanner whitespace

我希望用户输入一个字符串,然后在所选间隔的字符之间添加一个空格。

示例:用户输入:hello 然后每2个字母要一个空格。 output = he_ll_o_

import java.util.Scanner;

public class stackOverflow {


    public static void main(String[] args) {


        System.out.println("enter a string");
        Scanner input = new Scanner(System.in);
        String getInput = input.nextLine();

        System.out.println("how many spaces would you like?");
        Scanner space = new Scanner(System.in);
        int getSpace = space.nextInt();


        String toInput2 = new String();

        for(int i = 0; getInput.length() > i; i++){

        if(getSpace == 0) {
            toInput2 = toInput2 + getInput.charAt(i);
            } 
        else if(i % getSpace == 0) {
            toInput2 = toInput2 + getInput.charAt(i) + "_"; //this line im having trouble with.
            }

        }


        System.out.println(toInput2);

    }



}

到目前为止我的代码,它可能是解决它的完全错误的方法,所以如果我错了,请纠正我。提前谢谢:)

2 个答案:

答案 0 :(得分:4)

我认为你想要按如下方式制定你的循环体:

for(int i = 0; getInput.length() > i; i++) {
    if (i != 0 && i % getSpace == 0)
        toInput2 = toInput2 + "_";

    toInput2 = toInput2 + getInput.charAt(i);
}

但是,有一种更简单的方法,使用正则表达式:

"helloworld".replaceAll(".{3}", "$0_")  // "hel_low_orl_d"

答案 1 :(得分:0)

您可以将案例区分简化为:

toInput2 += getInput.charAt(i);
if(i != 0 && i % getSpace == 0) {
    toInput2 += "_";
}

您还应该考虑重命名变量。