2015-04-05 97 views

回答

1

您可以使用split得到字符串的最後一部分

String msg = "Hard120109Missing or invalid shipper phone number"; 
String val[] = msg.split("\\d+"); 
if (val.length > 1) { 
    System.out.println("Message= " + val[1]); 
} 

輸出

Message= Missing or invalid shipper phone number 
+0

感謝Neo,完美無缺! – bgeveritt 2015-04-06 19:07:53

0

你總是可以循環(假設這是它自己的helper方法):

for(int i = str.length()-1; i >= 0; i--) { 
    char c = str.charAt(i); 
    if(c >= '0' && c <= '9') { 
     return str.substring(i+1); 
    } 
} 
return ""; 
3
String[] arr = yourString.split("[0-9]+"); 

String newString = arr[1]; //get string after first number 

首先,通過任何數字分割你的字符串,然後從陣列

讓您的字符串對於不同數字量:

String[] arr = yourString.split("[0-9]+", 2); 

StringBuilder sb = new StringBuilder(); 

if (arr.length <= 1) 
    throw new RuntimeException("Invalid String"); 

for (int i = 1; i < arr.length; i++) 
    sb.append(arr[i]); 
String newString = sb.toString(); 

繼承人另一種方式:

String newString = ""; 
try{ 
    yourString.split("[0-9]+", 2)[1]; 
} catch(ArrayIndexOutOfBoundsException e){} //leaves newString as "" 
+0

這是行不通的,如果字符串有更多的數字,並會拋出如果沒有錯誤,則爲錯誤。另外,爲此創建一個數組效率不高。 – russellsayshi 2015-04-05 17:57:43

+0

@russellsayshi第3個選項現在效率更高:) – JClassic 2015-04-05 18:08:01

1
String str = "Hard120109Missing or invalid shipper phone number"; 
String newStr = ""; 
for (int i = str.length() - 1; i >= 0; i--) { 
    char ch = str.charAt(i); 
    if (Character.isDigit(ch)) break; 

    newStr = ch + newStr; 
} 
相關問題