2012-04-04 59 views
3

我想在冒號字符上分割java中的一些字符串。Java,通過冒號拆分輸入文件

字符串格式爲:Account:Password

我想分開令牌:AccountPassword。什麼是最好的方法來做到這一點?

+0

具體問題是什麼? – 2012-04-04 02:06:55

+0

我有一個USERNAME:PASSWORD的文本文件,每個帳戶/密碼對在它自己的行上。我想逐行讀取文件,並將用戶名放入自己的變量中,並將密碼放入自己的變量中。 – user1304317 2012-04-04 02:08:04

+1

'strLine.split(「:」)'應該給你用戶名並通過 – mshsayem 2012-04-04 02:08:55

回答

18

請先看Ernest Friedman-Hill的回答。

String namepass[] = strLine.split(":"); 
String name = namepass[0]; 
String pass = namepass[1]; 
// do whatever you want with 'name' and 'pass' 
+0

你的答案幫助很多!是否有辦法讓它讀取名稱的第一行:傳入文件,設置像上面那樣的變量...然後讓它執行一些其他任務,然後重複該過程,但是使用下一個「name:pass」在列表中? – user1304317 2012-04-04 02:19:34

+0

在你的代碼循環中,提取名稱並通過這種方式,做你想做的任何事 – mshsayem 2012-04-04 02:21:09

+0

噢好吧知道了!另外,隨機。但是你知道如何添加到JList嗎? – user1304317 2012-04-04 02:22:58

5

不知道你需要什麼部分有幫助,但要注意的是,split()呼叫在上面不會返回比單元素數組以外的任何其他的,因爲readLine(),顧名思義,停止當它看到一個\n字符。另一方面,split(":"),應該是非常方便你...

+0

將其更改爲split(「:」)只是複製列表中的每個條目。 – user1304317 2012-04-04 02:10:18

+0

將它改爲'split(「:」)'會給你兩個單獨的數組元素的用戶名和密碼,在這一點上你可以隨意做任何你想做的事情 - 這是整個企業的目標,作爲我明白了。 – 2012-04-04 02:12:17

+0

將其更改爲「:」只是複製列表中的條目。所以如果我在我的列表中有6個條目,輸出是12套「USERNAME:PASSWORD」 – user1304317 2012-04-04 02:15:32

1

你需要使用split(「:」)。嘗試這個 -

import java.util.ArrayList; 
import java.util.List; 

class Account { 
    String username; 
    String password; 

    public Account(String username, String password) { 
     super(); 
     this.username = username; 
     this.password = password; 
    } 

    public String getUsername() { 
     return username; 
    } 

    public void setUsername(String username) { 
     this.username = username; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

} 

class Solution { 
    public static void main(String[] args) { 
     while(.....){//read till the end of the file 
      String input = //each line 
      List<Account> accountsList = new ArrayList<Account>(); 
      String splitValues[] = input.split(":"); 
      Account account = new Account(splitValues[0], splitValues[1]); 
      accountsList.add(account); 
     } 
     //perform your operations with accountList 
    } 
} 

希望它能幫助!

+0

這實際上確實讓球滾動了一下!我如何將「sans」放在一個變量中,並在另一個變量中「傳遞」? – user1304317 2012-04-04 02:14:14

+0

瀏覽編輯答案。我還沒有使用getters和setter,仍然可以使用它們。 – sgowd 2012-04-04 02:23:41