2012-12-04 25 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

中再次组合这个条件,如果你的字符串是固定的,处理两者 –