我有一个字符串如:
C: 16896208896
我怎么能得到以下的输出:
16896208896
我有一个字符串如:
C: 16896208896
我怎么能得到以下的输出:
16896208896
String[] expl = rawString.split(":");
System.out.print(expl[1].trim());
substring(10)
提供更好更完整的答案,我们需要对字符串的可变性的更多细节。
myStr.split(" ")[1]
其中myStr = "C: sdg55253522355345"
str.split(":")[1].trim()
非常简单的方法,假设总有十个字符数开始将之前
System.out.println(theString.substring(10));
如果字符数量不同,则类似
System.out.println(theString.split(" ")[1]);
会起作用。
'System.out.println(theString.split(“”)[1]);'将返回一个空格。如果字符数量不同,我们不能使用像'System.out.println(theString.split(“:”)[1] .trim());'..? – Mudassir 2012-02-03 12:02:18
这被之前和任何字符串中的任何号码后去掉任意非数字字符,前提是只有字符串是一个数字
"C: 16896208896 ".replaceAll("^\\D*(\\d+)\\D*$", "$1");
Pattern pattern = Pattern.compile("\s*(\d+)");
Matcher matcher = pattern.matcher(myString);
matcher.find();
String result = matcher.group(1);
使用正则表达式来找到你想。如果您不知道号码前有多少空格,这是解决问题的最佳方法。
试试这个。
yourString.split("\\s+")[1];
其实它是'yourString.split(“\\ s +”)[1];'。 – Mudassir 2012-02-03 11:56:03
String str = "C: 16896208896"
str.split(" ")[1];
或
String str = "C: 16896208896"
str.substring(10);
或使用正则表达式过滤掉正是你想要的。
最简单的解决方案取决于你的字符串结构:它是否总是像你的例子?然后你可以从位置2开始,并修剪它(s.substring(2).trim())。
替代地,如果在前面的部分“:”“:”而变化,在分割字符串采用分体式(见http://www.java-examples.com/java-string-split-example)。
如果没有固定的分隔符,事情会变得更加复杂。您可以使用例如正如在正则表达式之前建议的匹配数字部分一样。
你试过了什么?你看过String的javadocs吗?是stackoverflow你尝试的第一个地方? – 2012-02-03 11:50:22
http://www.googleguide.com – Matten 2012-02-03 11:51:26
'System.out.println(“16896208896”);' – 2012-02-03 11:53:07