0

在我的示例中,我有一个字符串:"POINT (6.5976512883340064 53.011505757047068)"

我想要的是从该字符串中提取两个双精度并将它们放在单独的字符串中。

我可以使用 a StringReader,但是双打的长度不是固定的(也就是长度可能会有所不同),所以我无法说明在哪个位置之后开始选择。

我想说的是,第一次选择是在“(”之后和空格之前进行的,第二次选择是在空格之后和“)”之前进行的。可以忽略字符串的其余部分。

有什么建议么?

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 回答
0
var point = "POINT (6.5976512883340064 53.011505757047068)";

var indexOfFirstBrace = point.IndexOf('(') + 1;
var indexOfLastBrace = point.IndexOf(')');
var coordinates = point.Substring(indexOfFirstBrace, indexOfLastBrace - indexOfFirstBrace).Split(' ');

var xCoordinate = coordinates[0];
var yCoordinate = coordinates[1];
于 2015-05-04T12:57:15.223 回答