在java中获取列表元素的最后一部分

在java中获取列表元素的最后一部分,java,string,list,text,Java,String,List,Text,我想开发一个小程序,它读取一个文本文件并将值存储到一个列表中。该列表的格式如下: [1234 nick, 243 56475, 13 mi87ke] 我想要完成的是只提取每个列表元素的最后一部分。尽管我考虑了两种不同的方法,但仍然没有得到正确的结果 到目前为止,我的代码如下: First approach: index = randomGenerator.nextInt(list.size()); element = list.get(index);

我想开发一个小程序,它读取一个文本文件并将值存储到一个列表中。该列表的格式如下:

[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];
        }

我注意到长度小于6的元素仍然通过返回第一部分和第二部分来打印。有人知道为什么会发生这种情况,以及是否有办法解决吗?

我找到了问题的解决方案:

    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];
    }
index=randomGenerator.nextInt(list.size());
元素=list.get(索引);
字符串[]位=元素。拆分(“”);
元素=位[位长度-1];
while(element.length()<6 | | element.length()>8){
index=randomGenerator.nextInt(list.size());
元素=list.get(索引);
位=元素。拆分(“”);
元素=位[位长度-1];
}

想解释一下你奇怪的while循环的目的吗?你问什么还不清楚;您必须更清楚地解释输入和预期输出之间的关联。从这个意义上讲,你的回答也没有什么帮助。如果除了你没有人理解这个问题,没有人会关心答案。这只是因为我对长度>=6的元素感兴趣,并想解释一下这是如何解决问题的?在我最初的方法中,我没有在while循环之前提取元素的最后一部分,因此它也返回了第一部分。如果第一个零件和第二个零件的长度满足条件,则打印为正确。通过以上修改,我提取了while循环之前元素的最后一部分,因此程序现在实现了我从一开始就想到的。谢谢。这是有道理的。
    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];
    }