我想开发一个小程序,它读取文本文件并将值存储到列表中。该列表具有以下格式:
[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
我注意到长度大于&lt;仍然通过将第一部分与第二部分一起返回来打印6。任何人都知道为什么会这样,如果有办法解决它?
答案 0 :(得分:1)
我找到了问题的解决方案:
index = randomGenerator.nextInt(list.size());
element = list.get(index);
String[] bits = element.split(" ");
element = bits[bits.length-1];
while (element.length() < 6 || element.length() > 8) {
index = randomGenerator.nextInt(list.size());
element = list.get(index);
bits = element.split(" ");
element = bits[bits.length-1];
}