将用户输入的字符拆分为ArrayList

时间:2014-09-19 17:41:07

标签: java string parsing arraylist

我目前正在编写一个类的编码项目,我们必须使用逗号分隔的2-10个字符(仅限字母)列表,并在使用给定的字典文本文件进行交叉检查后生成所有可能的单词。

我遇到的问题是虽然我可以拆分列表并创建一个数组,但我知道使用ArrayList会更有用,这就是我遇到问题的地方。

Scanner input = new Scanner(System.in);
String letters = input.nextLine();
input.close();
ArrayList<Letters> Letter = new ArrayList<Letters>();
letters.split(",");
Letter.add();

我不确定我应该把什么放入add函数,因为我显然不希望所有的字符都作为ArrayList的一个索引。我想也许我应该将角色分成单独的字符串对象,但我不知道如何实现这一点。有些东西让我想到从我的介绍课解析但仍然遇到麻烦。

提前感谢任何批评和帮助。

3 个答案:

答案 0 :(得分:2)

使用split函数时,您的字符串将转换为String类型的数组。

  

字符串,在Java编程中广泛使用,是一系列的   字符。在Java编程语言中,字符串是对象。

source and read about String type

例如

 String[] splitString = string.split(",");

以及你在添加

中添加的内容

你可以使用for循环来分割已拆分的String数组并将每个元素放在数组列表中,如

for(int i=0; i< splitString.legth; i++)
     Letter.add(splitString[i]); 

添加意味着什么:

  

public boolean add(E e)将指定的元素追加到末尾   这个清单。

注意:当您使用每个内容时,String数组是add函数使用的元素。

注意:String是对象,因此无需转换为对象。

示例:

        String s = "a,b,c"; <---- String is object no need to convert

        String[] sp = s.split(",");<---- Array of String is object no need to convert

        List<String> l = new ArrayList<>();
        for (int i = 0; i < sp.length; i++) {
            l.add(sp[i]);
        }
       for (int i = 0; i < l.size(); i++) {
        System.out.print(" " + l.get(i));
       }

输出:

a b c

答案 1 :(得分:2)

不确定Letter类的作用,但是拆分字符串并将每个字母放入List中可以执行以下操作:

String s = "a,b,c,d,e,g,h";
List<String> list =  Arrays.asList(s.split(","));
System.out.println(list);

答案 2 :(得分:1)

您可以使用Arrays从拆分中创建新列表。我不确定你的'Letters'类有什么用,但你可以用逗号分隔符分割:

Scanner input = new Scanner(System.in);
String letters = input.nextLine();
input.close();
List<String> Letter = Arrays.asList(letters.split(","));

在Java 8中使用流并假设它们是可访问的Letters(final String s)构造函数:

Scanner input = new Scanner(System.in);
String letters = input.nextLine();
input.close();
List<Letters> letter = Arrays.stream(letters.split(",")).map(Letters::new).collect(Collectors.toList());