如何拆分ArrayList的每一行的内容?

时间:2017-06-16 16:36:00

标签: java arraylist

很抱歉,如果这个问题有点令人困惑。基本上,我有一个名为list1的arraylist。 list1包含:

a Mark
c Peter
r Edwin
i Rachel
f Sebastian
p

如何只访问单数字后面的名字?例如,我想只访问名称" Mark,Peter,Edwin,Rachel和Sebastian"。我知道如何访问第一个字母" a,c,r,i,f,p"但不知道如何访问其余的名字。以下是我到目前为止的情况:

for (Iterator<String> it = list1.iterator(); it.hasNext();) {
        String s = it.next();
        System.out.println(s.charAt(0));
   }
    for (Iterator<String> it = list1.iterator(); it.hasNext();) {
        String s1 = it.next();
        for (int i=2; i<s1.length(); i++){
            System.out.print(s1.charAt(i));
        }

   }

这就是我的输出:

a
c
r
i
f
p
MarkPeterEdwinRachelSebastian

但我希望它看起来像这样:

c
r
i
f
p
Mark
Peter
Edwin
Rachel
Sebastian

4 个答案:

答案 0 :(得分:1)

你几乎就在那里,问题在于内部for循环。 因为您只使用print,所以它不会打印换行符,并且所有内容都保持在同一行

   for (Iterator<String> it = list1.iterator(); it.hasNext();) {
        String s = it.next();
        System.out.println(s.charAt(0));
   }
   for (Iterator<String> it = list1.iterator(); it.hasNext();) {
        String s1 = it.next();
        for (int i=2; i<s1.length(); i++){
            System.out.print(s1.charAt(i));
        }
        System.out.println();
   }

答案 1 :(得分:0)

使用String的split方法并用空格分隔每个字符串要容易得多。然后,您将得到一个包含两个元素的数组,即字母和名称。它应该如下工作:

    for(String str : list1)
    {
        String[] splitted = str.split(" ");
        System.out.println(splitted[0]);
    }

    for(String str : list1)
    {
        String[] splitted = str.split(" ");
        System.out.println(splitted[1]);
    }

答案 2 :(得分:0)

您可以使用for-each简单地遍历列表,而不是使用迭代器
短代码

for (String s : list1) {
    System.out.println(s.charAt(0));
}
for (String s : list1) {
    System.out.println(s.substring(2));
}

答案 3 :(得分:0)

如果我理解正确,看起来你的问题只是一个格式问题,而不是这个

 (Iterator<String> it = list1.iterator(); it.hasNext();) {
        String s1 = it.next();
        for (int i=2; i<s1.length(); i++){
            System.out.print(s1.charAt(i));
        }

尝试

 (Iterator<String> it = list1.iterator(); it.hasNext();) {
        String s1 = it.next();
        for (int i=2; i<s1.length(); i++){
            System.out.println(s1.substring(2));
        }

你的印刷品在一行中返回所有内容,而不是在arraylist中的另一行foreach项目。