java每20个字符分割一个字符串,然后将每个部分打印到控制台
好的,我正在尝试为一个更大的项目做一些事情,我需要每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不是很有经验。)
有人知道什么会起作用吗
(如果您能将我的代码改写成可以工作的代码并加以解释,那将是非常棒的,但我们非常感谢您的帮助)
# 1 楼答案
基本问题是你的系统。出来println在for循环之外,您最多只能得到1个结果,下面我为您重做了基本结构
另外,我对Java很生疏,但我很确定equals运算符是==不是=(single=是赋值)
还有什么是splitText,您不定义它或分配它的值
# 2 楼答案
这只鹬应该能做到:
记住
Thread.sleep(1000)
将停止整个主线程。您可以使用类似于这个概念的东西(线程)来避免这个问题https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html# 3 楼答案
这种方法无法实现您的目标。您可以阅读拆分方法api。 围绕给定正则表达式的匹配项拆分此字符串。 此方法返回的数组包含此字符串的每个子字符串,该子字符串由与给定表达式匹配的另一个子字符串终止,或由字符串结尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。如果表达式与输入的任何部分都不匹配,则结果数组只有一个元素,即该字符串。 limit参数控制应用阵列的次数,因此会影响结果阵列的长度。如果限制n大于零,则模式最多应用n-1次,数组长度不大于n,数组的最后一个条目将包含最后一个匹配分隔符之外的所有输入。如果n为非正,则图案将被应用尽可能多的次数,并且阵列可以具有任意长度。如果n为零,则将尽可能多次应用该模式,数组可以有任何长度,并且将丢弃尾随的空字符串。 例如,字符串“boo:and:foo”使用这些参数生成以下结果: 正则表达式极限结果
如果我这样做,我将使用代码blow: