2012-02-03 152 views
-12

可能重复:
Cutting/splitting strings with Java分割字符串与Java

我有一个字符串如:

C:  16896208896 

我怎么能得到以下的输出:

16896208896 
+2

你试过了什么?你看过String的javadocs吗?是stackoverflow你尝试的第一个地方? – 2012-02-03 11:50:22

+2

http://www.googleguide.com – Matten 2012-02-03 11:51:26

+9

'System.out.println(“16896208896”);' – 2012-02-03 11:53:07

回答

3

Java docs on String.split()

String[] expl = rawString.split(":"); 
System.out.print(expl[1].trim()); 
+0

+1:我将使用Java 7 Javadoc和一个忽略空白而不是char'的字符串:\\ s +“' – 2012-02-03 11:54:50

+1

@ usoban,你应该真的养成连接最新的javadoc的习惯。 – mre 2012-02-03 12:17:55

+0

修复了链接。 – usoban 2012-02-03 18:30:21

0

substring(10)

提供更好更完整的答案,我们需要对字符串的可变性的更多细节。

+0

这种方法不可取,因为字符串的“substring”与原始字符串具有相同的大小。检查字符串字段'值'。检查我的答案为通用方法 – MozenRath 2012-02-03 12:51:16

+0

您的答案可能会使用较少的内存,但从处理时间角度来看,效率较低,而且不太直截了当。当然,如果数字的确切起始位置未知,则需要进行拆分。 – 2012-02-03 12:56:58

+0

是的,我明白了。这就是为什么我说这是一种通用的方法。使用子字符串在这里是硬编码 – MozenRath 2012-02-03 13:07:16

0

myStr.split(" ")[1]

其中myStr = "C: sdg55253522355345"

1

str.split(":")[1].trim()

0

非常简单的方法,假设总有十个字符数开始将之前

System.out.println(theString.substring(10)); 

如果字符数量不同,则类似

System.out.println(theString.split(" ")[1]); 

会起作用。

+0

'System.out.println(theString.split(“”)[1]);'将返回一个空格。如果字符数量不同,我们不能使用像'System.out.println(theString.split(“:”)[1] .trim());'..? – Mudassir 2012-02-03 12:02:18

0

这被之前和任何字符串中的任何号码后去掉任意非数字字符,前提是只有字符串是一个数字

"C:  16896208896 ".replaceAll("^\\D*(\\d+)\\D*$", "$1"); 
0
Pattern pattern = Pattern.compile("\s*(\d+)"); 
Matcher matcher = pattern.matcher(myString); 
matcher.find(); 
String result = matcher.group(1); 

使用正则表达式来找到你想。如果您不知道号码前有多少空格,这是解决问题的最佳方法。

1

试试这个。

yourString.split("\\s+")[1]; 
+1

其实它是'yourString.split(“\\ s +”)[1];'。 – Mudassir 2012-02-03 11:56:03

3
String str = "C:  16896208896" 
str.split("  ")[1]; 

String str = "C:  16896208896" 
str.substring(10); 

或使用正则表达式过滤掉正是你想要的。

0

最简单的解决方案取决于你的字符串结构:它是否总是像你的例子?然后你可以从位置2开始,并修剪它(s.substring(2).trim())。

替代地,如果在前面的部分“:”“:”而变化,在分割字符串采用分体式(见http://www.java-examples.com/java-string-split-example)。

如果没有固定的分隔符,事情会变得更加复杂。您可以使用例如正如在正则表达式之前建议的匹配数字部分一样。