好的所以我正在创建一个应用程序,但我不确定如何获取字符串的某些部分。我已经在文件中读到了这样的内容:
*tp*|21394398437984|163600
*2*|AAA|1234567894561236|STOP|20140527|Success||Automated|DSPRN1234567
*2*|AAA|1234567894561237|STOP|20140527|Success||Automated|DPSRN1234568
*3*|2
我需要阅读以 2 开头的行,所以我完成了:
s = new Scanner(new BufferedReader(new FileReader("example.dat")));
while (s.hasNext()) {
String str1 = s.nextLine ();
if(str1.startsWith("*2*")) {
System.out.print(str1);
}
}
所以这将读完整行我很好,现在我的问题是我需要提取第二行以数字开头第4位数字第5位成功和第7位(DPSRN)。
我正在考虑使用带有|的字符串分隔符作为分隔符,但我不知道在此之后去哪里,任何帮助都会很棒。
答案 0 :(得分:0)
你应该使用String.split("|")
,它会给你一个数组 - String []
答案 1 :(得分:0)
请尝试以下操作:
String test="*2*|AAA|1234567894561236|STOP|20140527|Success||Automated|DSPRN1234567";
String tok[]=test.split("\\|");
for(String s:tok){
System.out.println(s);
}
输出
*2*
AAA
1234567894561236
STOP
20140527
Success
Automated
DSPRN1234567
您需要的内容将放置在tok[2]
,tok[4]
,tok[5]
和tok[8]
。
答案 2 :(得分:0)
根据您的搜索拆分返回的行,这将返回一个String
元素数组,您可以根据索引检索元素:
s = new Scanner(new BufferedReader(new FileReader("example.dat")));
String searchLine = "";
while (s.hasNext()) {
searchLine = s.nextLine();
if(searchLine.startsWith("*2*")) {
break;
}
}
String[] strs = searchLine.split("|");
String secondArgument = strs[2];
String forthArgument = strs[4];
String fifthArgument = strs[5];
String seventhArgument = strs[7];
System.out.println(secondArgument);
System.out.println(forthArgument);
System.out.println(fifthArgument);
System.out.println(seventhArgument);