检查字符串的格式是否为 "coordinate/coordinate"
check if string is in format "coordinate/coordinate"
我很想知道如何检查字符串是否具有两个坐标的格式,例如:
(signed int x,signed int y)
我已经通过搜索找到了一些答案,但我还不太明白(刚开始使用 C++),我要求一个简单的解决方案或提示如何检查它。谢谢!
我会使用这个(可能存在一些更简单的):
^\(\-{0,1}\d*,\-{0,1}\d*\)
即:
^\( start by a parenthesis
\-{0,1} 0 or 1 "-"
\d* any digit
, ","
并重复。
我假设您需要专门将一个字符串作为输入。我会检查字符串的每个值。
string str;
// something happens to str, to make it a coordinate
int n = 0;
int m = 48;
bool isANumber;
bool hasASlash = false;
while ((n < str.length()) and isANumber) {
isANumber = false;
if (str.at(n) == '/') {
hasASlash = true; // this means there is a slash somewhere in it
}
while ((m <= 57) and !isANumber) {
// makes sure the character is a number or slash
if ((str.at(n) == m) or (str.at(n) == '/')) isANumber = true;
m++;
}
m = 48;
n++;
}
if (hasASlash and isANumber) {
// the string is in the right format
}
如有错误请指正...
我很想知道如何检查字符串是否具有两个坐标的格式,例如:
(signed int x,signed int y)
我已经通过搜索找到了一些答案,但我还不太明白(刚开始使用 C++),我要求一个简单的解决方案或提示如何检查它。谢谢!
我会使用这个(可能存在一些更简单的):
^\(\-{0,1}\d*,\-{0,1}\d*\)
即:
^\( start by a parenthesis
\-{0,1} 0 or 1 "-"
\d* any digit
, ","
并重复。
我假设您需要专门将一个字符串作为输入。我会检查字符串的每个值。
string str;
// something happens to str, to make it a coordinate
int n = 0;
int m = 48;
bool isANumber;
bool hasASlash = false;
while ((n < str.length()) and isANumber) {
isANumber = false;
if (str.at(n) == '/') {
hasASlash = true; // this means there is a slash somewhere in it
}
while ((m <= 57) and !isANumber) {
// makes sure the character is a number or slash
if ((str.at(n) == m) or (str.at(n) == '/')) isANumber = true;
m++;
}
m = 48;
n++;
}
if (hasASlash and isANumber) {
// the string is in the right format
}
如有错误请指正...