0

如何检查 c# 中的字符串是否以 char 的 ascii 代码开头?StartsWith 函数只接收字符串而不是字符。我想知道字符串是否以 86 的 ascii 开头并以 91 的 ascii 结尾。我怎样才能做到这一点?

4

7 回答 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 回答