0

私の例では、文字列があります:"POINT (6.5976512883340064 53.011505757047068)"

私が望むのは、その文字列から 2 つの double を抽出し、それらを別々の文字列に配置することです。

を使用できますがStringReader、ダブルの長さは固定されていないため (つまり、長さは異なる場合があります)、選択を開始する位置を特定することはできません。

私が望むのは、最初の選択は「(」の後、空白の前に行われ、2 番目の選択は空白の後、「)」の前に行われることです。文字列の残りの部分は無視できます。

助言がありますか?

4

3 に答える 3

1

次のコードを使用できます。

var str = "POINT (6.5976512883340064 53.011505757047068)";
var nums = Regex.Replace(a, @"POINT\s*\(([^)]+)\)", "$1").Split(' ');
var x = nums[0];
var y = nums[1];
于 2015-05-04T12:54:43.553 に答える
1
    void GetDoubles() 
    {
        string valuesWithoutBrackets = ExtractStringBetweenBrackets("POINT (6.5976512883340064 53.011505757047068)");
        string[] values = valuesWithoutBrackets.Split(" ".ToCharArray());

        //values[0] = "6.5976512883340064"
        //values[1] = "53.011505757047068"
    }

    string ExtractStringBetweenBrackets(string s)
    {
        // You should check for errors in real-world code, omitted for brevity
        var startTag = "(";
        int startIndex = s.IndexOf(startTag) + startTag.Length;
        int endIndex = s.IndexOf(")", startIndex);
        return s.Substring(startIndex, endIndex - startIndex);
    }
于 2015-05-04T12:58:24.833 に答える