C# 通过使用字符串的 ASCII 代码检查字符串是否以字符开头和结尾

本文关键字:字符串 是否 字符 开头 结尾 检查 ASCII 代码 | 更新日期: 2023-09-27 18:31:27

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

C# 通过使用字符串的 ASCII 代码检查字符串是否以字符开头和结尾

您可以通过访问字符串的 char 数组来检查开始和结束:

string s = "...";
if ((!String.IsNullOrEmpty(s)) && 
    (s[0] == (char)86) && (s[s.Length-1] == (char)91))
    // doSomething

您可以使用字符串。从喜欢开始

bool success = yourString.StartsWith(Char.ConvertFromUtf32(86))
               && yourString.EndsWith(Char.ConvertFromUtf32(91));

将其转换为字符,然后转换为字符串。

((char) 86).ToString()

或者,只需直接检查字符串:

mystring[0] == (char) 86

或:

mystring[0] == ''x56' // in hex

甚至:

mystring.StartsWith("'x56")

您可以直接将字符与其 ASCII 代码进行比较,而无需强制转换:

if (str.Length != 0 && str[0] == 86 && str[str.Length-1] == 91) ...

当然,字符常量以其自然形式看起来更好:

if (str.Length != 0 && str[0] == 'V' && str[str.Length-1] == ']') ...
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))

通过字符串中的 ASCII 值检查字符在很大程度上与检查实际字符值相同。但是,为了启发您:

string s = "V4-42$TIh[";
if (s[0] == 86 && s[s.Length - 1] == 91) {
    // true
}
无需

执行任何特殊操作,甚至无需使用函数调用。

您可以使用

System.Convert.ToInt32("Yourstring"[0])。传递字符串的字符直到其长度,例如:

string Yourstring="test";
string asciivalue="";

执行以下操作,直到

asciivalue=System.Convert.ToInt32("Yourstring"[i]);

这将输出相应的 ASCII 值。