好的,我正在尝试为较大的项目做某事,我需要每20个字符分割一个字符串,然后将每个部分打印到控制台,每个输入之间的延迟为1秒
我试着做:
if (x==true){
String[] Text = JOptionPane.showInputDialog("Input string").split(null, 20);
for (int i = 0; i < Text.length; i++) {
String splitText = (Text[ i ]);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(splitText);
}
}
但这没有用(抱歉,我对Java不太熟悉)。
有谁知道什么可行?
(如果您可以将我的代码重写为可以正常工作的内容并进行解释,那将是很棒的,但是可以提供任何帮助)。
最佳答案
方法拆分无法实现您的目标。您可以阅读拆分方法api。
围绕给定正则表达式的匹配项拆分此字符串。
此方法返回的数组包含此字符串的每个子字符串,该子字符串由与给定表达式匹配的另一个子字符串终止或由字符串的结尾终止。数组中的子字符串按照它们在此字符串中出现的顺序排列。如果表达式与输入的任何部分都不匹配,则结果数组只有一个元素,即此字符串。
limit参数控制应用图案的次数,因此会影响所得数组的长度。如果限制n大于零,则将最多应用n-1次该模式,该数组的长度将不大于n,并且该数组的最后一个条目将包含除最后一个匹配的定界符之外的所有输入。如果n为非正数,则该模式将被尽可能多地应用,并且数组可以具有任何长度。如果n为零,则该模式将被尽可能多地应用,该数组可以具有任何长度,并且尾随的空字符串将被丢弃。
例如,字符串“ boo:and:foo”使用这些参数会产生以下结果:
正则表达式限制结果
: 2 { "boo", "and:foo" }
: 5 { "boo", "and", "foo" }
: -2 { "boo", "and", "foo" }
o 5 { "b", "", ":and:f", "", "" }
o -2 { "b", "", ":and:f", "", "" }
o 0 { "b", "", ":and:f" }
如果这样做,我将使用代码打击:
String input = JOptionPane.showInputDialog("Input string");
int count = input.length() / 20 + 1;
for(int i = 0;i < count;i++)
{
System.out.println(input.substring(i * 20, (i + 1) * 20 >= input.length() ? input.length() : (i + 1) * 20));
}