我已经读到了这个论坛上发布的几个类似的问题,但我的问题略有不同。我确实想编辑第一行,但诀窍在于可能有几行可以具有相同的值。例如,在一个有100名学生的班级中,极有可能至少有2-3个学生具有相同的名字。考虑到这个限制,我决定给每个学生分配一个唯一的学号。因此,最终的文本文件将如下所示
莱昂哈德
欧拉
123
卡尔
高斯胶
234
莱昂哈德
伽罗瓦
345
现在假设用户想要编辑一个学生名字莱昂哈德的名字,那么我应该如何对它进行编程,使得只有345的名字被编辑?
请帮帮忙......
谢谢。
发布于 2016-01-12 02:46:19
我不确定我是否理解你的要求。
如果可以读取字符串中的整个文件,则可以使用string类的replaceFirst方法:
字符串replaceFirst(字符串正则表达式,字符串替换)
将此字符串中与给定正则表达式匹配的第一个子字符串替换为给定的替换。
因为第一个参数是正则表达式,所以可以使用它来查找要更新的记录。
System.out.println("Giulio Cesare 000, Marco Aurelio 001, Marco Altieri 002, Pinco Pallino 003".replaceFirst("Marco (.*) 001", "Mario $1 001"));在本例中,我使用了逗号分隔的字符串,但是为包含多行的字符串编写正则表达式应该不是那么困难。
例如,以下正则表达式应该可以工作:
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"));发布于 2016-01-12 06:44:52
现在假设用户想要编辑一个学生名字的名字,
,那么我应该如何对它进行编程,使得只有345的名字被编辑?
您的数据应该以某种形式的记录类型进行排序。这样,您就可以通过ID (在本例中为学号)查找记录,并且只更改该记录的数据-即使多个学生具有相同的姓名(名字、姓氏)。
有关更详细的示例,请参阅this。
https://stackoverflow.com/questions/34728470
复制相似问题