如何检查 c# 中的字符串是否以 char 的 ascii 代码开头?StartsWith 函数只接收字符串而不是字符。我想知道字符串是否以 86 的 ascii 开头并以 91 的 ascii 结尾。我怎样才能做到这一点?
问问题
4945 次
7 回答
6
您可以通过访问字符串的 char 数组来检查开始和结束:
string s = "...";
if ((!String.IsNullOrEmpty(s)) &&
(s[0] == (char)86) && (s[s.Length-1] == (char)91))
// doSomething
于 2012-04-16T13:10:22.077 回答
5
你可以使用 string.Startswith like
bool success = yourString.StartsWith(Char.ConvertFromUtf32(86))
&& yourString.EndsWith(Char.ConvertFromUtf32(91));
于 2012-04-16T13:11:18.557 回答
1
将其转换为 char,然后转换为字符串。
((char) 86).ToString()
或者,直接检查字符串:
mystring[0] == (char) 86
或者:
mystring[0] == '\x56' // in hex
甚至:
mystring.StartsWith("\x56")
于 2012-04-16T13:10:14.487 回答
1
您可以直接将字符与其 ASCII 代码进行比较,无需强制转换:
if (str.Length != 0 && str[0] == 86 && str[str.Length-1] == 91) ...
当然,字符常量以其自然形式看起来更好:
if (str.Length != 0 && str[0] == 'V' && str[str.Length-1] == ']') ...
于 2012-04-16T13:10:46.710 回答
0
你可以使用这个System.Convert.ToInt32("Yourstring"[0])
。将字符串的字符传递到它的长度,例如:
string Yourstring="test";
string asciivalue="";
执行以下操作直到长度
asciivalue=System.Convert.ToInt32("Yourstring"[i]);
这将输出相应的 ASCII 值..
于 2012-04-16T13:17:39.220 回答
0
var startChar = char(86).ToString();
var endChar = char(91).ToString();
if (myString.StartsWith(startCar) && myString.EndsWith(endChar))
{
....
}
或者整理一下实现你自己的扩展方法StartWith
/EndWith
在类型字符串上,它需要字符:
public static string StartsWith(this string str, char ch)
{
return str.StartsWith(ch.ToString());
}
然后您的代码将如下所示:
myString.StartsWith(char(86)) && myString.EndsWith(char(91))
于 2012-04-16T13:11:31.803 回答
0
通过字符串中的 ASCII 值检查字符在很大程度上与检查实际字符值相同。但是,为了启发您:
string s = "V4-42$TIh[";
if (s[0] == 86 && s[s.Length - 1] == 91) {
// true
}
不需要做任何特别的事情,甚至不需要使用函数调用。
于 2012-04-16T13:14:13.947 回答