2

文字列があり、値を個別に分割したいと思います。

たとえば、次の文字列を分割したいと思います。

            Test1 Avg. running Time: 66,3 [ms], (Ref: 424.0) ===> Well done, It is 80% faster

66,3[ms] と Ref 値が別々に必要です。

これを行うための最良の方法を提案していただけると助かります。

区切り文字 (:) を使用する必要がありますか? しかし、この場合、出力を次のように受け取ります

            66,3 [ms], (Ref: 424.0) ===> Well done, It is 80% faster 

または、「正規表現」を使用する必要がありますか?

4

4 に答える 4

1

この場合.split(", ");、',' の後に空白があるため、使用できます。

既製のパーサーについては、この投稿もご覧ください。

于 2012-07-31T12:21:41.600 に答える
0

あなたはsplit()機能を使うことができます...

String s = "66,3 [ms], (Ref: 424.0) ===> Well done, It is 80% faster";

String[] arr = s.split(", ");

于 2012-07-31T12:35:46.743 に答える
0

このように使う

public class JavaStringSplitExample {

    public static void main(String args[]) {

        String str = "one-two-three";
        String[] temp;

        String delimiter = "-";

        temp = str.split(delimiter);

        for (int i = 0; i < temp.length; i++)
            System.out.println(temp[i]);

        /*
         * NOTE : Some special characters need to be escaped while providing
         * them as delimiters like "." and "|".
         */

        System.out.println("");
        str = "one.two.three";
        delimiter = "\\.";
        temp = str.split(delimiter);
        for (int i = 0; i < temp.length; i++)
            System.out.println(temp[i]);

        /*
         * Using second argument in the String.split() method, we can control
         * the maximum number of substrings generated by splitting a string.
         */

        System.out.println("");
        temp = str.split(delimiter, 2);
        for (int i = 0; i < temp.length; i++)
            System.out.println(temp[i]);

    }

}
于 2012-07-31T12:50:11.840 に答える
0

この正規表現を試すことができます:

    String test = "Test1 Avg. running Time: 66,3 [ms], (Ref: 424.0) ===> Well done, It is 80% faster"; 
    Pattern p = Pattern.compile("(\\d+[.,]?\\d+)");
    Matcher m = p.matcher(test);
    m.find();
    String avgRunningTime = m.group(1);
    m.find();
    String ref = m.group(1);
    System.out.println("avgRunningTime: "+avgRunningTime+", ref: "+ref);

これは次のように表示されます。

    avgRunningTime: 66,3, ref: 424.0

当然、いくつかのエラー チェックを追加する必要があります (たとえば、 return if をチェックしm.find()ますtrue)。

于 2012-07-31T13:50:35.310 に答える