gpt4 book ai didi

java - 从文本文件读取数据并验证它

转载 作者:行者123 更新时间:2023-12-02 03:12:21 25 4
gpt4 key购买 nike

我有一个文本文件,我需要将其中的数据读取到二维数组。该文件包含字符串和数字。

String[][] arr = new String[3][5];    
BufferedReader br = new BufferedReader(new FileReader("C:/Users/kp/Desktop/sample.txt"));
String line = " ";
String [] temp;
int i = 0;
while ((line = br.readLine())!= null){
temp = line.split(" ");
for (int j = 0; j<arr[i].length; j++) {
arr[i][j] = (temp[j]);
}
i++;
}

示例文本文件是:姓名 年龄 工资 ID 性别
约翰 45 4900 22 M
珍妮 33 4567 33 楼
菲利普 55 5456 44 M

现在,当名称是单个单词且中间没有任何空格时,代码可以正常工作。但当名字像“jhon desuja”时它不起作用。如何克服这个问题?

我需要将它存储在二维数组中。如何验证输入?例如姓名不应包含数字或年龄不应为负数或包含字母。任何帮助将不胜感激。

最佳答案

正则表达式可能是更好的选择:

Pattern p =     Pattern.compile("(.+) (\\d+) (\\d+) (\\d+) ([MF])");
String[] test = new String[]{"jhon 45 4900 22 M","janey 33 4567 33 F","philip 55 5456 44 M","john mayer 56 4567 45 M"};
for(String line : test){
Matcher m = p.matcher(line);
if(m.find())
System.out.println(m.group(1) +", " +m.group(2) +", "+m.group(3) +", " + m.group(4) +", " + m.group(5));
}

这将返回

jhon, 45, 4900, 22, M
janey, 33, 4567, 33, F
philip, 55, 5456, 44, M
john mayer, 56, 4567, 45, M

关于java - 从文本文件读取数据并验证它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40843941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com