我目前正在编写一个类的编码项目,我们必须使用逗号分隔的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的一个索引。我想也许我应该将角色分成单独的字符串对象,但我不知道如何实现这一点。有些东西让我想到从我的介绍课解析但仍然遇到麻烦。
提前感谢任何批评和帮助。
答案 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());