首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中通过文件处理改变文本文件中的名字?

如何在Java中通过文件处理改变文本文件中的名字?
EN

Stack Overflow用户
提问于 2016-01-12 02:27:26
回答 2查看 42关注 0票数 1

我已经读到了这个论坛上发布的几个类似的问题,但我的问题略有不同。我确实想编辑第一行,但诀窍在于可能有几行可以具有相同的值。例如,在一个有100名学生的班级中,极有可能至少有2-3个学生具有相同的名字。考虑到这个限制,我决定给每个学生分配一个唯一的学号。因此,最终的文本文件将如下所示

莱昂哈德

欧拉

123

卡尔

高斯胶

234

莱昂哈德

伽罗瓦

345

现在假设用户想要编辑一个学生名字莱昂哈德的名字,那么我应该如何对它进行编程,使得只有345的名字被编辑?

请帮帮忙......

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-01-12 02:46:19

我不确定我是否理解你的要求。

如果可以读取字符串中的整个文件,则可以使用string类的replaceFirst方法:

字符串replaceFirst(字符串正则表达式,字符串替换)

将此字符串中与给定正则表达式匹配的第一个子字符串替换为给定的替换。

因为第一个参数是正则表达式,所以可以使用它来查找要更新的记录。

代码语言:javascript
复制
System.out.println("Giulio Cesare 000, Marco Aurelio 001, Marco Altieri 002, Pinco Pallino 003".replaceFirst("Marco (.*) 001", "Mario $1 001"));

在本例中,我使用了逗号分隔的字符串,但是为包含多行的字符串编写正则表达式应该不是那么困难。

例如,以下正则表达式应该可以工作:

代码语言:javascript
复制
System.out.println("Giulio\r\nCesare\r\n000\r\nMarco\r\nAurelio\r\n001\r\nMarco\r\nAltieri\r\n002\r\nPinco\r\nPallino 003".replaceFirst("Marco\r\n(.*)\r\n001", "Mario\r\n$1\r\n001"));
票数 0
EN

Stack Overflow用户

发布于 2016-01-12 06:44:52

现在假设用户想要编辑一个学生名字的名字,

,那么我应该如何对它进行编程,使得只有345的名字被编辑?

您的数据应该以某种形式的记录类型进行排序。这样,您就可以通过ID (在本例中为学号)查找记录,并且只更改该记录的数据-即使多个学生具有相同的姓名(名字、姓氏)。

有关更详细的示例,请参阅this

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34728470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档