在java中的特殊字符之前获取string的值

时间:2015-06-09 17:12:30

标签: java arrays string

这似乎是一个简单的问题,但我无法解决这个问题。

我有以下字符串数组,名为results:

21|Commercial Property Green
100|Social Services Commercial Property
5|Social Services Professional
6501|Personal Property

我只需要字符串的数字部分(即21,100,5和6501,它们可以是字符串,不需要它们是整数)。我该怎么做?

如果您需要更多信息,请与我们联系。

7 个答案:

答案 0 :(得分:3)

你们这些人都非常喜欢正则表达式....

int x = line.indexOf('|');
if(x==-1) 
    ... parse error
else
    return line.substring(0,x);

答案 1 :(得分:2)

如果数组中的所有字符串格式相同,则可以使用以下

 for(int i=0;i<arr.length();i++){
  System.out.println(arr[i].substring(0,arr[i].indexOf('|')));
}

答案 2 :(得分:1)

您也可以使用split()方法

String str = "21|Commercial Property Green Endorsement";
String[] parts = str.split("\\|");
String part1 = parts[0]; // 21
String part2 = parts[1]; // Commercial Property Green Endorsement

答案 3 :(得分:0)

使用正则表达式:([^|]+)

Pattern pattern = Pattern.compile("([^|]+)");
Matcher matcher = pattern.matcher(str);
if(matcher.find()) {
    int number = Integer.parseInt(matcher.group(1));
    ...
}

答案 4 :(得分:0)

你可以做这样简单的事情,假设你粘贴的是数组中的每个项目

public class StringSplit {

  public static void main(String[] args) {
    String[] lines = new String[]{"21|Commercial Property Green Endorsement",
      "100|Social Services Commercial Property Endorsement",
      "5|Social Services Professional Liability",
      "6501|Personal Property Liability"};
    for (String string : lines) {
      String num = string.split("\\|")[0];
      System.out.println(num);
    }
  }

}

答案 5 :(得分:0)

为什么不再使用酷炫的新Java 8功能回答:)

String[] stringArray = new String[] {
    "21|Commercial Property Green Endorsement",
    "100|Social Services Commercial Property Endorsement",
    "5|Social Services Professional Liability",
    "6501|Personal Property Liability"
};

int[] intArray = Arrays.stream(stringArray).mapToInt(s -> Integer.parseInt(s.split("\\|")[0])).toArray();

答案 6 :(得分:0)

for (int i=0; i< results.length(); i++) {
results[i].split("\\|")[0];}

Split()是String类

中定义的方法
    public String[] split(String regex) {
    return split(regex, 0);
}

转义字符(也称为转义序列或转义码)通常用于表示一系列字符的替代解释。在Java中,以反斜杠()开头的字符是转义序列,对java编译器具有特殊含义。 我们使用\作为转义字符,否则为'|'不会被考虑。

它会拆分并返回一个String数组,如Split()定义中所示。