您如何从用户那里获取字符串并将其拆分?
How do you take a string from user and split it up?
我正在尝试编写一个 Java 程序:
将字符串存储在名为 inputStr 的变量中,将整数存储在名为 inputInt 的变量中。
将 inputStr 和 inputInt 传递给名为 splitter 的方法。 splitter方法拆分输入
string 一次完全由 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
你
是
阿恩
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));
}
我正在尝试编写一个 Java 程序:
将字符串存储在名为 inputStr 的变量中,将整数存储在名为 inputInt 的变量中。
将 inputStr 和 inputInt 传递给名为 splitter 的方法。 splitter方法拆分输入
string 一次完全由 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
你
是
阿恩
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));
}