Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#使用ascii码检查字符串是否以字符开头和结尾_C#_String_Ascii - Fatal编程技术网

c#使用ascii码检查字符串是否以字符开头和结尾

c#使用ascii码检查字符串是否以字符开头和结尾,c#,string,ascii,C#,String,Ascii,如何检查c#中的字符串是否以字符的ascii码开头? 函数StartsWith只接收字符串,不接收字符。 我想知道字符串是否以86的ascii开始,以91的ascii结束。 如何实现这一点?将其转换为字符,然后转换为字符串 ((char) 86).ToString() 或者,直接检查字符串: mystring[0] == (char) 86 或: 甚至: mystring.StartsWith("\x56") 您可以通过访问字符串的字符数组来检查开始和结束: string s = "...

如何检查c#中的字符串是否以字符的ascii码开头? 函数StartsWith只接收字符串,不接收字符。 我想知道字符串是否以86的ascii开始,以91的ascii结束。
如何实现这一点?

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

((char) 86).ToString()
或者,直接检查字符串:

mystring[0] == (char) 86
或:

甚至:

mystring.StartsWith("\x56")

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

string s = "...";

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

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

if (str.Length != 0 && str[0] == 86 && str[str.Length-1] == 91) ...
当然,字符常量的自然形式看起来更好:

if (str.Length != 0 && str[0] == 'V' && str[str.Length-1] == ']') ...

您可以使用string.Startswith like

bool success = yourString.StartsWith(Char.ConvertFromUtf32(86))
               && yourString.EndsWith(Char.ConvertFromUtf32(91));
或者,为了整理这一点,请在接受字符的类型字符串上为
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(“您的字符串”[0])
。将字符串的字符传递到其长度,如下所示:

string Yourstring="test";
string asciivalue="";
执行以下操作,直到完成测试

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

这将输出相应的ASCII值。

您可以使用正则表达式进行检查。如果s.Length>0或s[0]可能失败,最好包含一个检查。-1您不需要为此操作将整数强制转换为字符。@DavidAnderson我知道,但我更喜欢它的可读性(对任何其他内容都没有影响)可以说,这远不如不铸造可读性强。这看起来乱七八糟,没必要争论,因为每个人都有权发表意见。大多数团队不会通过代码审查,因为您缺少间距、括号,并且有不必要的代码。我认为开发人员推广高质量、构造良好的代码是很重要的,特别是对于那些学习和进入该行业的人。
string Yourstring="test";
string asciivalue="";
asciivalue=System.Convert.ToInt32("Yourstring"[i]);