你如何从用户那里取一个字符串并将其拆分?

时间:2015-04-14 15:33:01

标签: java string splitter

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

  • 将字符串存储在名为inputStr的变量中,将整数存储在名为inputInt的变量中。

  • 将inputStr和inputInt传递给名为splitter的方法。拆分器方法拆分输入

  • 一次只输入一个inputInt字符,然后将每个字符打印成一行。只有

  • 的分裂
  • 应准确输入inputInt字符。

这是我到目前为止的代码:

 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

SIS
ANE
XAM

例2:
请输入一个字符串:ThisIsAnotherExample
请输入一个整数:6
THISIS
Anothe
rExamp

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

4 个答案:

答案 0 :(得分:0)

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)); 
}

答案 1 :(得分:0)

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);
}

答案 2 :(得分:0)

您可以像以下一样更改代码:

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以打破字符串。

用于避免StringIndexOutOfBoundsException的If和else循环,请考虑用户是否希望在3个字母中打破5个字母的单词。最后一个字符串将包含2个字母,并将抛出StringIndexOutOfBoundsException例外。

----------------------------------- EDIT ----------- ---------------

匹配示例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));

        }

答案 3 :(得分:0)

循环索引需要以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));
    }