我想开发一个小程序,它读取一个文本文件并将这些值存储到列表中。该列表的格式如下:获取java中列表元素的最后一部分
[1234 nick, 243 56475, 13 mi87ke]
我要实现什么目标,是只提取每个列表的元素的最后一部分。尽管我考虑过两种不同的方法,但我仍然没有得到正确的结果。
到目前为止我的代码如下:
First approach:
index = randomGenerator.nextInt(list.size());
element = list.get(index);
while (element.length() < 6 || element.length() > 8) {
index = randomGenerator.nextInt(list.size());
element = list.get(index).substring(element.lastIndexOf(" ")+1);
}
Second approach:
index = randomGenerator.nextInt(list.size());
element = list.get(index);
while (element.length() < 6 || element.length() > 8) {
index = randomGenerator.nextInt(list.size());
element = list.get(index);
String[] bits = element.split(" ");
element = bits[bits.length-1];
}
从两种方法的输出是相同的:
leslie02
yakumo
Buddy1
yaseen
24 19871
我注意到通过返回的第一部分,与长度< 6的元件仍印刷随着第二。任何人都知道为什么会发生这种情况,如果有办法解决这个问题?
护理来解释你的奇while循环的目的是什么? –
这是不是很清楚你在问什么;您将不得不更加清楚地解释输入和预期输出之间的关系。这意味着,你的答案也不是很有用。如果没有人能理解这个问题,但没有人会关心答案。 – GhostCat
这只是因为我对它们的长度大于等于6且小于等于8的元素感兴趣。这是我从一开始就错误的,因为我在while循环之前没有分开前两个部分的情况下评估元素。 –