在java中获取字符串的一部分

时间:2013-03-11 21:17:07

标签: java

我是java的新手,我有一个关于字符串的问题

如果我有:

String example="PostID:123";

如何获取数字123并将其存储在另一个字符串中? 谢谢

5 个答案:

答案 0 :(得分:3)

一种快速方法是使用split方法:

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

如果您确切知道源的格式,或者您知道此格式永远不会更改,则此方法很有效。

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

StringBuilder b = new StringBuilder(); // or StringBuffer
for (char c: source.toCharArray()) {
   if (Character.isDigit(c)) {
      b.append(c);
   }
}
String numString = b.toString();

答案 1 :(得分:1)

根据String的一个解决方案是split :并返回第二部分:

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
}

答案 2 :(得分:0)

使用substring API中提供的String方法。

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

答案 3 :(得分:0)

使用String的split方法。

修改:根据对其他答案的评论...提问者也有空格,因此我正在更新正则表达式,以便在:space上进行拆分。< / p>

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

答案 4 :(得分:0)

String example="PostID:123";

String numString = example.subString(example.lastIndexOf(":"));