我正在尝试编写一个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 字符。
答案 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));
}