簡體   English   中英

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

[英]Get value of string before a special character in java

這似乎是一個簡單的問題,但我無法弄清楚這一點。

我有以下字符串數組調用結果:

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

我只需要字符串的數字部分(即21,100,5和6501,它們可以是字符串,不需要它們是整數)。 我該怎么辦?

如果您需要更多信息,請與我們聯系。

你們太喜歡正則表達式....

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

如果數組中的所有字符串格式相同,則可以使用以下內容

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

您也可以使用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

使用正則表達式: ([^|]+)

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

你可以做這樣簡單的事情,假設你粘貼的是數組中的每個項目

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);
    }
  }

}

為什么不再使用酷的新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();
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()定義中所示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM