Java,按冒号拆分输入文件

Java,按冒号拆分输入文件,java,parsing,input,split,Java,Parsing,Input,Split,我想在java中拆分一些冒号字符的字符串 字符串的格式为:Account:Password 我想分离令牌:帐户和密码。最好的方法是什么?不确定您需要帮助的部分,但请注意,上面的split()调用将永远不会返回单元素数组以外的任何内容,因为根据定义,readLine()在看到\n字符时停止split(“:”)应该非常方便……您需要使用split(“:”)。试试这个- import java.util.ArrayList; import java.util.List; class Account

我想在java中拆分一些冒号字符的字符串

字符串的格式为:
Account:Password


我想分离令牌:
帐户
密码
。最好的方法是什么?

不确定您需要帮助的部分,但请注意,上面的
split()
调用将永远不会返回单元素数组以外的任何内容,因为根据定义,
readLine()
在看到
\n
字符时停止<另一方面,code>split(“:”)应该非常方便……

您需要使用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
    }
}
import java.util.ArrayList;
导入java.util.List;
类别帐户{
字符串用户名;
字符串密码;
公共帐户(字符串用户名、字符串密码){
超级();
this.username=用户名;
this.password=密码;
}
公共字符串getUsername(){
返回用户名;
}
public void setUsername(字符串用户名){
this.username=用户名;
}
公共字符串getPassword(){
返回密码;
}
public void setPassword(字符串密码){
this.password=密码;
}
}
类解决方案{
公共静态void main(字符串[]args){
而(…){//一直读到文件末尾
字符串输入=//每行
List accountsList=新建ArrayList();
字符串splitValues[]=input.split(“:”);
账户=新账户(拆分值[0],拆分值[1]);
账户列表。添加(账户);
}
//使用accountList执行操作
}
}

希望有帮助

先看欧内斯特·弗里德曼·希尔的答案

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

我有一个用户名:PASSWORD的文本文件,每个帐户/密码对都有自己的一行。我想逐行读取文件,并将用户名放在它自己的变量中,密码放在它自己的变量中。
strLine.split(“:”)
应该给你用户名和密码什么帐户和用户名?两者都不同?是的。两者都是不同的,我希望每个都转到各自的变量,转到下一行,执行相同的操作,然后重复。在循环中:
namepass=strLine.split(“:”);name=namepass[0];pass=namepass[1]
,这不应该吗?将其更改为split(“:”)只会复制列表中的每个条目。将其更改为
split(“:”)
会将用户名和密码作为两个单独的数组元素提供,在这一点上,你可以自由地对他们做任何你想做的事情——这是我所理解的整个企业的目标。将其更改为“:”只需复制列表中的条目。因此,如果我的列表中有6个条目,那么输出是12组“用户名:密码”,我无法想象我们在谈论什么——但看起来@mshsayem的答案对你有用,所以结局很好。这确实让事情有点进展!我如何在一个变量中输入“sans”,在另一个变量中输入“pass”呢。我还没有用过getter和setter,你仍然可以用它们。你的答案很有帮助!有没有办法让它读取名称的第一行:传入一个文件,像上面那样设置这些变量…然后让它执行一些其他任务,然后重复这个过程,但是在列表中的下一个“name:pass”中?在代码的循环中,提取名称并以这种方式传递,然后做任何你想做的事情好的,明白了!还有,随机的。但是您知道如何添加到JList吗?