在java中将.txt文件转换为两个字符串
如果您有一个名为“login.txt”的文本文件(与可执行jar位于同一文件夹中),其中包含在java中将.txt文件转换为两个字符串,java,string,text-files,Java,String,Text Files,如果您有一个名为“login.txt”的文本文件(与可执行jar位于同一文件夹中),其中包含ID:username-Password:Password,这是将ID和密码内容转换为两个字符串的最佳方法,因此您可以将它们替换为类似的内容:api.login(“用户名”、“密码”)注意:用户名和密码中没有空格,我的错 编辑:在api.login(“用户名”、“密码”)username和password应该是我最初拥有的,我想转换成字符串,比如api.login(ID,password)从文件中重申:条
ID:username-Password:Password
,这是将ID和密码内容转换为两个字符串的最佳方法,因此您可以将它们替换为类似的内容:api.login(“用户名”、“密码”)代码>注意:用户名和密码中没有空格,我的错
编辑:在api.login(“用户名”、“密码”)
username和password应该是我最初拥有的,我想转换成字符串,比如api.login(ID,password)代码>从文件中重申:条件:
- 格式为
ID:username密码:Password
ID
是一个静态字符串
密码
是一个静态字符串
username
从不包含空格
然后,您可以使用简单的正则表达式提取数据:
ID:(?<username>[^\s]++)\s++Password:(?<password>.*+)
字符串#拆分
?但是,你需要知道,username
或password
是否可以包含spacesummam可能有很多方法,你可以使用String.equals()类,你可以使用HashMap,你可以使用多维数组,正则表达式,这真的取决于你选择的武器。展示你尝试过的东西。@mad,事先没有太空智慧-。
public User extractCredentials(final String data) {
final Pattern pattern = Pattern.compile("ID:(?<username>[^\\s]++)\\s++Password:(?<password>.*+)");
final Matcher matcher = pattern.matcher(data);
if (!matcher.matches()) {
throw new IllegalArgumentException("Invalid data format");
}
return new User(matcher.group("username"), matcher.group("password"));
}
public class User {
private final String name;
private final String password;
public User(String name, String password) {
this.name = name;
this.password = password;
}
//getter
@Override
public String toString() {
return String.format("User{name='%s', password='%s'}", name, password);
}
}
System.out.println(extractCredentials("ID:username Password:password"));
User{name='username', password='password'}