2012-12-04 62 views
0

檢索特定的值,有一個包含值的字符串字段:我如何從字符串在java中

String a = "Local/[email protected],1"; 

現在按我的需要,我需要的值「5028」從上面的字符串字段中提取。

+6

你嘗試過什麼嗎?例如RegExp? –

+0

該值是否總是從相同的位置開始,還是始終在'/'和'@'之間,還是完全不同的規則? –

+0

先生,我試圖通過分割字符串值來執行此操作。 – Amit

回答

3

此拆分每個/@的字符串。

String a = "Local/[email protected],1"; 
System.out.println(a.split("[/@]")[1]); 
0

如果你知道你的格式是一致的,那麼你可以使用substring方法,或者你可以使用/和@分割字符串,然後從令牌數組中取第二個值。

1

使用String#substring函數檢索值。您需要將開始和結束索引作爲參數傳遞。

String a = "Local/[email protected],1"; 
System.out.println(a.substring(a.indexOf('/')+1, a.indexOf('@'))); 
+0

-1允許幻數,而不是真正的通用解決方案。這也是一個容易出錯的解決方案。 – sakthisundar

+0

@sakthisundar - 代碼已更新 –

0

如果這個字符串總是在給定的格式,那麼你可以試試這個:

String temp=a.split("@")[0]; 
System.out.println(temp.substring(temp.length()-4,temp.length())); 
0

使用正則表達式:

String a = "Local/[email protected],1"; 
     Pattern p = Pattern.compile("\\d+"); 
     Matcher m = p.matcher(a); 
     System.out.println(m.find() + " " + m.group()); 

使用String.Split:

String a = "Local/[email protected],1"; 
     String[] split = a.split("/"); 
     System.out.println(split[1].split("@")[0]); 
0

,如果你的字符串格式是固定的,你可以使用:

String a = "Local/[email protected],1"; 
a = a.substring(a.indexOf('/') + 1, a.indexOf('@')); 
System.out.println(a); 
+0

先生我有一個案例字符串a =「本地/ 5028-from-queue-bd7f,1」; PLz告訴我如何在代碼 – Amit

+0

中再次組合這個條件,如果你的字符串是固定的,處理兩者 –