-6

I'm new to java and I have a question concerning strings

If I have :

String example="PostID:123";

How can I get the number 123 and store it in another string ? thank you

4

5 回答 5

3

一种快速的方法是使用拆分方法:

String source = "PostID:123";
String[] tokens = source.split(":");
String numberString = tokens[1];

如果您确切地知道源格式或者您知道这种格式永远不会改变,这将是有效的。

另一种方法是使用char-arrayStringBuilder(如果您不确切知道 String 的格式并且不喜欢正则表达式 :)

StringBuilder b = new StringBuilder(); // or StringBuffer
for (char c: source.toCharArray()) {
   if (Character.isDigit(c)) {
      b.append(c);
   }
}
String numString = b.toString();
于 2013-03-11T21:19:56.590 回答
1

一种解决方案是拆分根据String:返回第二部分:

String newString = example.split(":")[1];

如果你String可以是这样的:PostID:123456 xy bla bla bla你可以这样做:

String newString = example.split(":")[1].split(" ")[0]; //Will contain 123456

example.split(":")[1]将包含123456 xy bla bla bla,然后我们根据空格进行拆分,并返回第一个元素,该元素将包含123456.

请注意,此解决方案假定 的结构与String您所说的完全相同。您可以为更通用的字符串实现更好的解决方案,例如:

String example="PostID   :   12312 xy abc asd ";
Pattern p = Pattern.compile(":\\s*(.*?)\\s+");
Matcher m = p.matcher(example);
if (m.find()) {
    System.out.println(m.group(1)); //Will print 12312
}
于 2013-03-11T21:19:14.763 回答
0
String example="PostID:123";

String numString = example.subString(example.lastIndexOf(":"));
于 2013-03-11T21:23:44.373 回答
0

使用APIsubstring中可用的方法。String

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html

于 2013-03-11T21:19:48.857 回答
0

使用 String 的 split 方法。

编辑:根据另一个答案的评论......提问者也有空格,所以我正在更新正则表达式以拆分:space.

public class Test {

  public static void main(String[] args) {
    String example="PostID:123 xy zy";
    String[] vals = example.split(":|\\s");
    for (int i = 0; i < vals.length; i++){
      System.out.println(vals[i]);
    }
  }

}

PostID
123
xy
zy
于 2013-03-11T21:20:28.897 回答