在.java中将.txt文件转换为两个字符串

时间:2016-01-24 22:20:29

标签: java string text-files

如果您有一个名为" login.txt"的文本文件 - 在与可执行jar相同的文件夹中 - 包含ID:username Password:password,这是将ID和密码内容转换为两个字符串的最佳方式,因此您可以将其替换为:api.login("username", "password"); P.S。用户名和密码没有空格,我的不好。

编辑:在api.login("username", "password");,用户名和密码应该是我原来的,我想从文件转换为api.login(ID, Password);这样的字符串

1 个答案:

答案 0 :(得分:0)

重申:条件:

  • 格式为ID:username Password:password
  • ID是一个静态字符串
  • Password是一个静态字符串
  • username 从不包含空格。

然后,您可以使用简单的Regex提取数据:

ID:(?<username>[^\s]++)\s++Password:(?<password>.*+)

例如:

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'}