Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 深文本文件处理_Java - Fatal编程技术网

Java 深文本文件处理

Java 深文本文件处理,java,Java,在java中处理文本文件时,是否有任何方法可以实现此结果: 假设我的文本文件包含以下数据(用户名、名字、姓氏、用户名、用户类型) 现在我有了另一个包含登录信息(用户、密码)的文件 当用户登录到系统时,我想使用.contains(username)检查第一个文件,现在如果在一行中找到用户名,那么我想打印由制表符分隔的名字和姓氏 我不想在这里使用映射,我想打印没有第一个、第三个和第四个值的行 C++中,我通常使用map库或迭代器(例如,和I - >第一个,第i个-第二个)来做,但是因为我是java

在java中处理文本文件时,是否有任何方法可以实现此结果:

假设我的文本文件包含以下数据(用户名、名字、姓氏、用户名、用户类型)

现在我有了另一个包含登录信息(用户、密码)的文件

当用户登录到系统时,我想使用.contains(username)检查第一个文件,现在如果在一行中找到用户名,那么我想打印由制表符分隔的名字和姓氏

我不想在这里使用映射,我想打印没有第一个、第三个和第四个值的行

C++中,我通常使用map库或迭代器(例如,<第一个值,第二个值>和I - >第一个,第i个-第二个)来做,但是因为我是java新手,所以我有点被卡住了。 我想跳过打印中的第一个、第三个和第四个值,这就是我要寻找的非映射值。

看看HashMap


通常,您会创建一个类来包含有关此人的信息:

public class Person{
    String number, first, last, username, type;
}
然后解析文件,为文件中的每一行创建
Person
的实例。您可以使用
String.split()
或番石榴的
Splitter

接下来,我将在一个
map
中映射
Persons
集合,其中键是用户名


您可以在
Person
中实现
toString
方法,以返回您喜欢的格式的名字/姓氏。

程序只检查一行是否包含用户名,然后我不知道文本文件中可能包含多少值,但我知道姓氏在用户名后面,姓氏在姓氏后面名称我看了一些hashmap示例,但我认为我不能使用hashmap。(也许我错了)您需要在HaspMap中加载文本文件(这意味着您需要解析文件)。HashMap是键、值对的集合。您可以将用户名作为密钥。然后,通过简单地使用get方法,您可以获得用户名的值,该值可以是您在其中存储的值。我正在寻找打印文件的方法,而不使用第一个、第三个和第四个值(假设我有四个值),这就是我要找的。你可以读这行,然后使用String的split函数创建所有值的数组,并相应地使用它。如果你只是在寻找处理从文件读取的字符串的帮助,看一看StrigUtils API:它有各种可能有帮助的拆分/查找方法。不想听起来有点屈尊俯就,你为什么不使用关系数据库呢?我自己通过使用Replace解决了这个问题。我一直在寻找最快、最简单的方法来处理问题,当然split和hashmap可能会给我同样的结果,但我发现它是如此简单、快速。
JJ123   abc
public class Person{
    String number, first, last, username, type;
}