gpt4 book ai didi

java - 如何从文件中分割字符串?

转载 作者:行者123 更新时间:2023-12-02 11:22:56 25 4
gpt4 key购买 nike

我有一个简单的文本文件,其中包含名为 logindata.txt 的信息。它看起来像这样:

username1:password1:username2:password2

计划是在“:”符号处分割该行。

这是我到目前为止的代码...

(...)

final StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
try {
String line;
while ((line = br.readLine()) != null) {
text.append(text);

//stuff over here ?

}
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}

如果我的文件中只有一个单词,这完全可以正常工作。

但我想使用该文件来存储所有用户名密码(这仅用于学习目的,我知道这有点愚蠢)最后像这样:

(...)

login_button.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
if (username.getText().toString().equals(text.toString()) && password.getText().toString().equals(text.toString()))

//Stuff happening here if the username & password is correct...

(...)

我完全陷入困境,并尝试了很多分割字符串的示例,但似乎都不起作用。

最佳答案

在你的情况下,我想使用 Map<Username, Password>像这样的模式:

String line = "username1:password1:username2:password2";
Map<String, String> userPass = new HashMap<>();
Pattern pattern = Pattern.compile("([^:]+):([^:]+)");
Matcher matcher = pattern.matcher(line);
while (matcher.find()) {
userPass.put(matcher.group(1), matcher.group(2));
}
System.out.println(userPass);

输出

{username2=password2, username1=password1}

如果你想检查用户是否存在,可以使用:

String username = "username1";
String password = "password1";
if(userPass.containsKey(username) && userPass.get(username).equals(password)){
//User exist
}
<小时/>

如果您的值可以重复,您可以使用另一个结构或创建一个包含用户名和密码的新对象,而不是 map

关于java - 如何从文件中分割字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49797817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com