在调用构造函数创建对象之前,我需要将输入数据解析为 4 个不同的参数,如下所示的格式。有什么想法吗?
示例数据输入格式:
rawdata = "900,300,Ernest,Fuller\n777,555,Henry,Miller\n"; //and so on
.
class BaseRecord {
int callerId;
int areaId;
String firstName;
String lastName;
BaseRecord (int cId, int aId, String fName, String lName)
callerId = cId;
areaId = aId;
firstName = fName;
lastName = lName;
}
最佳答案
使用 java.util.regex
包中的 Matcher
:
String rawdata = "900,300,Ernest,Fuller\n777,555,Henry,Miller\n";
Matcher m = Pattern.compile("(\\d+),(\\d+),(\\w+),(\\w+)", Pattern.DOTALL).matcher(rawdata);
while(m.find()){
int cId = Integer.parseInt(m.group(1));
int aId = Integer.parseInt(m.group(2));
String fName = m.group(3);
String lName = m.group(4);
// your logic here
new BaseRecord (int cId, int aId, String fName, String lName);
}
这样你就可以有多个换行符并防止 parseInt
上的 NumberFormatException
关于java - 在java中解析逗号分隔的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25455574/