Java读取txt文件时如何按/分割字符串存入对应姓名变量
实现方案
方法1:直接设置Scanner的分隔符
Scanner自带useDelimiter()方法,支持传入正则表达式作为内容分割规则,你可以直接指定/为分隔符,如果你的文件是每行存一个姓名,可以额外匹配换行符避免读取到多余的换行内容。
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class ReadName { public static void main(String[] args) { try { // 替换为你实际的txt文件路径 Scanner scanner = new Scanner(new File("names.txt")); // 分隔符规则:匹配/ 或者Windows/macOS的换行符 scanner.useDelimiter("/|\\r?\\n"); while (scanner.hasNext()) { String firstName = scanner.next(); String middleName = scanner.next(); String lastName = scanner.next(); // 此处可添加你自己的业务处理逻辑,下方为验证打印示例 System.out.printf("名:%s,中间名:%s,姓:%s%n", firstName, middleName, lastName); } scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
方法2:读取整行后分割(更适合初学者,容错性更高)
你也可以先逐行读取文件内容,再调用String类的split()方法按/分割,这种方式可以提前校验每行的格式是否符合要求,避免因为某行内容异常打乱整个读取逻辑。
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class ReadName { public static void main(String[] args) { // 替换为你实际的txt文件路径 try (BufferedReader br = new BufferedReader(new FileReader("names.txt"))) { String line; while ((line = br.readLine()) != null) { // 按/分割当前行内容 String[] nameParts = line.split("/"); // 先校验格式是否为三段,避免数组越界异常 if (nameParts.length == 3) { String firstName = nameParts[0]; String middleName = nameParts[1]; String lastName = nameParts[2]; // 此处可添加你自己的业务处理逻辑,下方为验证打印示例 System.out.printf("名:%s,中间名:%s,姓:%s%n", firstName, middleName, lastName); } else { System.out.printf("跳过格式错误的行:%s%n", line); } } } catch (IOException e) { e.printStackTrace(); } } }
注意事项
- 如果你的文件中
/前后可能存在空格,可以将分割规则调整为\\s*/\\s*,自动忽略前后的空白字符 - 优先推荐第二种方案,显式的行读取+长度校验可以提前拦截格式错误的内容,更易调试
内容的提问来源于stack exchange,提问作者Snorix5226
相关产品推荐
相关产品推荐

