在我的例子选择某些部分我有一个字符串:"POINT (6.5976512883340064 53.011505757047068)"
C#,从字符串
我想什么是从一个字符串中提取两个双打,并放置在单独的字符串。
我可以使用StringReader
,但是双打长度不固定(又名长度可能会有所不同),所以我无法说明在哪个位置开始选择。
我想说的是第一次选择是在“(”之前和空白之前,第二次选择是在空白之后和“之前”)之后作出的。字符串的其余部分可以被忽略。
有什么建议吗?
在我的例子选择某些部分我有一个字符串:"POINT (6.5976512883340064 53.011505757047068)"
C#,从字符串
我想什么是从一个字符串中提取两个双打,并放置在单独的字符串。
我可以使用StringReader
,但是双打长度不固定(又名长度可能会有所不同),所以我无法说明在哪个位置开始选择。
我想说的是第一次选择是在“(”之前和空白之前,第二次选择是在空白之后和“之前”)之后作出的。字符串的其余部分可以被忽略。
有什么建议吗?
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];
试过这个,这正是我需要的,非常感谢! – KDE
您可以使用下面的代码:
var str = "POINT (6.5976512883340064 53.011505757047068)";
var nums = Regex.Replace(a, @"POINT\s*\(([^)]+)\)", "$1").Split(' ');
var x = nums[0];
var y = nums[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);
}
如果你告诉我们(code)您会得到更好的反应,少downvotes你已经尝试什么,什么不起作用。 –
你可以使用正则表达式或找到第一个“(”&“下一个空间和比使用String.Substring .. – Cadburry
到目前为止你做的任何事情吗? –