2015-06-09 42 views
3

這看起來像一個簡單的問題,但我無法弄清楚這一點。在java中的特殊字符之前獲取字符串的值

我有以下字符串數組稱爲結果:

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

我只需要字符串(即21,100的數字部分,5 & 6501,他們可以是字符串,沒有必要對它們進行整數)。我會怎麼做?

讓我知道你是否需要更多信息。

回答

2

如果陣列中的所有字符串都是相同的格式,你可以使用下面的

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

這似乎是最簡單的一個,它的工作原理。謝謝。 –

0

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

Pattern pattern = Pattern.compile("([^|]+)"); 
Matcher matcher = pattern.matcher(str); 
if(matcher.find()) { 
    int number = Integer.parseInt(matcher.group(1)); 
    ... 
} 
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); 
    } 
    } 

} 
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

你們愛的正則表達式是什麼太多......

int x = line.indexOf('|'); 
if(x==-1) 
    ... parse error 
else 
    return line.substring(0,x); 
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(); 
0
for (int i=0; i< results.length(); i++) { 
results[i].split("\\|")[0];} 

拆分而不是一個更答案( )是在String類中定義的方法

public String[] split(String regex) { 
    return split(regex, 0); 
} 

轉義字符(也稱爲轉義序列或轉義pe代碼)通常用於表示一系列字符的替代解釋。在Java中,前面帶反斜槓()的字符是轉義序列,對java編譯器有特殊意義。 我們使用\作爲轉義字符,否則'|'將不被考慮。

它會拆分並返回一個String數組,正如您在Split()定義中所看到的。

+0

如果你解釋了正則表達式 –

+1

,那對OP有利。感謝@DavidBrossard提供寶貴的意見。我現在就去做 – mattdave

相關問題