您如何从用户那里获取字符串并将其拆分?

How do you take a string from user and split it up?

我正在尝试编写一个 Java 程序:

这是我目前的代码:

 public static void main(String[] args) {
 Scanner keyboard = new Scanner(System.in);
 System.out.print("What is your Phrase? "); 
 String inputStr;
 inputStr = keyboard.nextLine();
   System.out.println("Enter a Integer");
 int inputInt;
 inputInt=keyboard.nextInt();

 for(int i =1;i<20;i++){

 inputStr.substring(0, inputInt);



 }

程序应如下所示:
请输入字符串:ThisIsAnExample
请输入一个整数:3


阿恩
xam

示例 2:
请输入字符串:ThisIsAnotherExample
请输入一个整数:6
这是
另一个
rExamp

请注意,在示例 2 中,最后 2 个字符(“le”)没有被打印出来,因为它们没有 6 字符。

int i;
for (i = 0; i < inputStr.length(); i += inputInt) {
    System.out.println(inputStr.substring(i, i + inputInt);
    // store the substring if you want to do something with them later
    // I am just printing them
}

if (i - inputInt < inputStr.length()) {
    // Print remainder, if there is any.
    System.out.println(inputStr.substring(i)); 
}

String.substring绝对是这里的必经之路。你需要一个循环,像这样:

for (int i = 0; i < s.length()-inputInt+1, i = i + inputInt) {
    String sub = s.substring(i, i+inputInt);
    System.out.println(sub);
}

您可以像这样更改代码:

public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        System.out.print("What is your Phrase? "); 
        String inputStr;
        inputStr = keyboard.nextLine();
        System.out.println("Enter a Integer");
        int inputInt;
        inputInt=keyboard.nextInt();
        for(int i =0;i<inputStr.length();i+=inputInt){     
            if(i+inputInt < inputStr.length())
                System.out.println(inputStr.substring(i,i+inputInt));
            else
                System.out.println(inputStr.substring(i,inputStr.length()));
        }
    } 

for(int i =0;i<inputStr.length();i+=inputInt) 循环增加用户输入的次数。 inputInt

打印从 i 位置到 i+inputInt 的字符串以断开字符串。

If 和 else 循环用于避免 StringIndexOutOfBoundsException 因为考虑用户是否想将 5 个字母的单词分成 3 个字母。最终字符串将包含 2 个字母,并将抛出 StringIndexOutOfBoundsException 异常。

--------------------------------编辑-------- ------------------

匹配示例2:

inputInt=keyboard.nextInt();
        for(int i =0;i<inputStr.length();i+=inputInt){     
            if(i+inputInt < inputStr.length())
                System.out.println(inputStr.substring(i,i+inputInt));

        }

循环索引需要增加inputInt。尝试

    int i;
    for(i =0;i< inputStr.length()- inputInt;i+= inputInt){
        System.out.println(inputStr.substring(i, i + inputInt));
    }
    // For remaining substring
    if(i < inputStr.length()){
        System.out.println(inputStr.substring(i));
    }