使用分隔符检索字符串的一部分

时间:2014-10-13 11:04:25

标签: java string split

好的所以我正在创建一个应用程序,但我不确定如何获取字符串的某些部分。我已经在文件中读到了这样的内容:

*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)。

我正在考虑使用带有|的字符串分隔符作为分隔符,但我不知道在此之后去哪里,任何帮助都会很棒。

3 个答案:

答案 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);