[英]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.