我有一個字符串如:
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