基本上我需要做的只是将句子的前十个单词保存到数组中。我从我的代码中知道,如果大于 10,所有单词都会被保存,但我只迭代循环 10 次,所以它停止了。但是,如果句子少于 10 个单词,我需要用空字符串填充它。所以如果它有 10 个或更多单词我就可以让它工作。但是,如果少于 10 个字,我就无法让它工作。有谁知道让它发挥作用的方法吗?我的数组大小必须为 10。
String[] tempString = new String[10];
tempString = sentence.replaceAll("[^a-zA-Z ]", "").toLowerCase().split("\\s+");
for(int i = 0; i < tempString.length; i++)
{
System.out.println(tempString[i]);
}
编辑:
所以本质上,如果我输入句子:“一二三四五六七八九十”,它就会起作用。但是,如果我输入“一、二、三”,则会出现 ArrayOutofBoundsException。我需要其他 7 个索引填充的是一个空字符串。
最佳答案
您可以使用以下内容:
for(int i = 0; i < 10; i++)
{
if (i < tempString.length)
System.out.println(tempString[i]);
else
System.out.println("");
}
由于您需要 10 次打印,因此需要迭代 10 次。每次迭代时,您都会检查是否仍在分割的字符串数组范围内。如果不是,只需根据需要用空白空间填充其余部分即可。
关于java - 将字符串拆分为已定义的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20465914/