私はJavaが初めてで、文字列に関して質問があります
私が持っている場合:
String example="PostID:123";
数値 123 を取得して別の文字列に格納するにはどうすればよいですか? ありがとうございました
私はJavaが初めてで、文字列に関して質問があります
私が持っている場合:
String example="PostID:123";
数値 123 を取得して別の文字列に格納するにはどうすればよいですか? ありがとうございました
1 つの簡単な方法は、分割方法を使用することです。
String source = "PostID:123";
String[] tokens = source.split(":");
String numberString = tokens[1];
これは、ソースの形式が正確にわかっている場合、またはこの形式が変更されないことがわかっている場合に有効です。
別のアプローチは、char-arrayとStringBuilderを使用することです (文字列の形式が正確にわからず、正規表現が気に入らない場合:)
StringBuilder b = new StringBuilder(); // or StringBuffer
for (char c: source.toCharArray()) {
if (Character.isDigit(c)) {
b.append(c);
}
}
String numString = b.toString();
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
}
String example="PostID:123";
String numString = example.subString(example.lastIndexOf(":"));
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
APIで使用substring
可能なメソッドを使用します。String
http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html