2014-09-19 33 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());