2014-09-19 28 views
2

我目前正在为类的编码项目工作,在该类中我们必须以2-10个字符(仅限字母)的逗号分隔列表并在与给定字典进行交叉检查后产生所有可能的单词文本文件。将字符的用户输入分割为ArrayList

我遇到的问题是,尽管我可以拆分列表并创建一个数组,但我知道使用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的一个索引。我在想也许我应该将字符分割成单独的字符串对象,但我不知道如何实现。有些东西让我想到从我的课堂上解析,但仍然遇到麻烦。

在此先感谢您的批评和帮助。

+1

当你分割字符串所得到的数组。将该数组的每个元素添加到ArrayList,如'Letter.add(array [0])'。 – csmckelvey 2014-09-19 17:44:08

+0

请包括你的'信'类。 – mkobit 2014-09-19 17:46:40

+0

@MikeKobit函件类还没有尚未作出,但它应该采取ArrayList和创造了所有可从用户的输入进行可能的单词和交叉检查是否与给定的字典文本文件的有效字。 – EndlessProgression 2014-09-19 18:43:31

回答

2

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

字符串,其广泛用于在Java编程中,是 字符的序列。在Java编程语言中,字符串是对象。

source and read about String type

例如

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

而对于你放什么在添加

您可以使用循环来travarse的splited String数组,并把每个数组列表中的元素像

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

添加什么手段:

公共布尔加(E E)将指定元素的 这个列表的末尾。

注意:因为您使用每个内容字符串数组是add函数使用的元素。

注意:字符串是对象,所以不需要转换为对象。

例子:

 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 
+0

非常感谢!这非常有意义 – EndlessProgression 2014-09-19 18:43:53

+0

@ user3479375不用客气。高兴地看到你正在努力学习不只是复制过去的代码答案:) – 2014-09-19 19:01:36

+0

希望我没有打扰你,但我所遇到试图处理不正确移交输入的问题,因为你的伟大的描述只是希望你能检查出。请不要觉得有必要! http://pastebin.com/rkiSk8BZ – EndlessProgression 2014-09-19 19:49:51

2

不知道该信类做什么,但分割字符串,并把每个字母在列出一个可以做这样的事情:

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

'split'的返回值是一个String []'。你为什么把它转换成一个'String []'? – 2014-09-19 18:45:06

+0

我的错误,删除了演职员表 – Kennet 2014-09-22 10:24:21

1

你可以使用Arrays创建从分离的新列表。我不知道你的“信”类做什么,而是你可以用逗号分隔符这样的分裂:

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());