-6

私はJavaが初めてで、文字列に関して質問があります

私が持っている場合:

String example="PostID:123";

数値 123 を取得して別の文字列に格納するにはどうすればよいですか? ありがとうございました

4

5 に答える 5

3

1 つの簡単な方法は、分割方法を使用することです。

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

これは、ソースの形式が正確にわかっている場合、またはこの形式が変更されないことがわかっている場合に有効です。

別のアプローチは、char-arrayStringBuilderを使用することです (文字列の形式が正確にわからず、正規表現が気に入らない場合:)

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

1 つの解決策は、2 番目の部分に従ってを分割して返すことです。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

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 に答える
0

APIで使用substring可能なメソッドを使用します。String

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

于 2013-03-11T21:19:48.857 に答える