如何拆分字符串并提取特定元素?

时间:2012-02-16 17:54:37

标签: java

我有一个文件,其中包含

等行
20 19:0.26 85:0.36 1064:0.236 # 750

我能够逐行阅读并将其输出到控制台。但是,我真正需要的是从每一行中提取“19:0.26”“85:0.36”等元素,并对它们执行某些操作。如何分割线条并获得我想要的元素。

4 个答案:

答案 0 :(得分:2)

使用正则表达式:

Pattern.compile("\\d+:\\d+\\.\\d+");

然后你可以从这个模式创建一个Matcher对象,最后使用它的方法find()

答案 1 :(得分:0)

Java Strings有一个可以调用的分割方法

String [] stringArray = "some string".split(" ");

如果您愿意,可以使用正则表达式,以便可以匹配某些字符以进行拆分。

String Doc: http://docs.oracle.com/javase/6/docs/api/java/lang/String.html

Pattern Doc(用于制作正则表达式): http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

答案 2 :(得分:0)

解析一系列数据在很大程度上取决于数据的含义以及数据的一致性。纯粹来自您的示例数据和您提到的“元素”,这可能就像

一样简单
String[] parts = line.split(" ");

答案 3 :(得分:0)

根据你的需要修改此代码,

public class JavaStringSplitExample{

  public static void main(String args[]){

  String str = "one-two-three";
  String[] temp;

  /* delimiter */
  String delimiter = "-";
  /* given string will be split by the argument delimiter provided. */
  temp = str.split(delimiter);
  /* print substrings */
  for(int i =0; i < temp.length ; i++)
    System.out.println(temp[i]);

  /*
  IMPORTANT : Some special characters need to be escaped while providing them as
  delimiters like "." and "|".
  */

  System.out.println("");
  str = "one.two.three";
  delimiter = "\\.";
  temp = str.split(delimiter);
  for(int i =0; i < temp.length ; i++)
    System.out.println(temp[i]);

  /*
  Using second argument in the String.split() method, we can control the maximum
  number of substrings generated by splitting a string.
  */

  System.out.println("");
  temp = str.split(delimiter,2);
  for(int i =0; i < temp.length ; i++)
    System.out.println(temp[i]);

  }

}