java将列表一分为二

我有一个清单:


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

我如何以最简单的方式做到这一点?谢谢


四季花海
浏览 277回答 3
3回答

HUWWW

如果您确定 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));输出将是,123457Jack

MMMHUHU

因此,假设您有一个如下列表,您可以通过与正则表达式匹配来迭代和分离字符串和整数项:public class Main {&nbsp; &nbsp; public static void main(String[] args) {&nbsp; &nbsp; &nbsp; &nbsp; List<String> list = Arrays.asList("1234", "sadf", "1234124", "asdfas");&nbsp; &nbsp; &nbsp; &nbsp; List<String> idList = new ArrayList(); // you can make it String or Integer&nbsp; &nbsp; &nbsp; &nbsp; List<String> nameList = new ArrayList();&nbsp; &nbsp; &nbsp; &nbsp; for (String item : list) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // here we distinguish digits only&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (item.matches("^[0-9]*$")) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; idList.add(item);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nameList.add(item);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; idList.forEach(System.out::println);&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("");&nbsp; &nbsp; &nbsp; &nbsp; nameList.forEach(System.out::println);&nbsp; &nbsp; }}输出 :12341234124sadfasdfas

紫衣仙女

答案取决于您是否打算使用特定方法来解决此练习。如果您应该使用数组,那么您需要学习如何判断特定项目的数组索引号是偶数还是奇数,以便您可以将相应的项目定向到其他数组之一。查看模数运算符。如果您应该使用字符串,并且列表的格式与您编写的完全一样,那么您需要考虑可以使用哪些字符将列表首先拆分为对,然后将这些对拆分为单个项目,然后您将其添加到相应的列表中。万一您应该使用“列表”,那么上面的数组方法将起作用,但基于问题的复杂性,我猜测列表稍后会出现。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java