为了账号安全,请及时绑定邮箱和手机立即绑定

java将列表一分为二

java将列表一分为二

四季花海 2021-08-19 18:59:37
我有一个清单: [132567,Amelia, 123476,Charlie, 123516,Emily, 143456,George, 123466,Harry, 123457,Jack, 125456,Joshua, 132456,Lily, 123456,Oliver]我想将此列表分成两个列表,一个列表是 ID,另一个列表是 NAMES。还要求 ID[1] 必须对应于 NAME[1] 等等。所以,本质上,我想要两个这样的列表:id    = [132567, 123476, 123516, 143456, 123466, 123457, 125456, 132456, 123456]names = [Amelia, Charlie, Emily, George, Harry, Jack, Joshua, Lily, Oliver]我如何以最简单的方式做到这一点?谢谢
查看完整描述

3 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

如果您确定 ID 始终以数字开头并且名称不以数字开头,则可以尝试此操作。


String text = "132567, Amelia, 123476, Charlie, 123516, Emily, 143456, George, 123466, Harry, 123457, Jack, 125456, Joshua, 132456, Lily, 123456, Oliver";


ArrayList id = new ArrayList(), name = new ArrayList();

String[] split = text.split(",");

for (String string : split) {

    if (Character.isDigit(string.trim().charAt(0))) {

        id.add(string.trim());

    } else {

        name.add(string.trim());

    }

}

如果你想得到第 6 个元素,


System.out.println(id.get(5));

System.out.println(name.get(5));

输出将是,


123457

Jack


查看完整回答
反对 回复 2021-08-19
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

因此,假设您有一个如下列表,您可以通过与正则表达式匹配来迭代和分离字符串和整数项:


public class Main {

    public static void main(String[] args) {

        List<String> list = Arrays.asList("1234", "sadf", "1234124", "asdfas");


        List<String> idList = new ArrayList(); // you can make it String or Integer

        List<String> nameList = new ArrayList();


        for (String item : list) {

            // here we distinguish digits only

            if (item.matches("^[0-9]*$")) {

                idList.add(item);

            }else {

                nameList.add(item);

            }

        }


        idList.forEach(System.out::println);

        System.out.println("");

        nameList.forEach(System.out::println);

    }

}

输出 :


1234

1234124


sadf

asdfas


查看完整回答
反对 回复 2021-08-19
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

答案取决于您是否打算使用特定方法来解决此练习。

如果您应该使用数组,那么您需要学习如何判断特定项目的数组索引号是偶数还是奇数,以便您可以将相应的项目定向到其他数组之一。查看模数运算符。

如果您应该使用字符串,并且列表的格式与您编写的完全一样,那么您需要考虑可以使用哪些字符将列表首先拆分为对,然后将这些对拆分为单个项目,然后您将其添加到相应的列表中。

万一您应该使用“列表”,那么上面的数组方法将起作用,但基于问题的复杂性,我猜测列表稍后会出现。


查看完整回答
反对 回复 2021-08-19
  • 3 回答
  • 0 关注
  • 241 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信