我试图检查字符串是否包含vb.net中的连续字符
示例:
'test@01' - not ok
'test@02 - ok
'testab' - not ok
'testac' - ok
'testabc' not ok
字符串不应该有任何连续的字符。 (数字和字母)字母数字
感谢任何帮助。
答案 0 :(得分:2)
你的问题非常模糊。更别说语言(C#或VB)有很多含糊之处:
"cba"
是否正常(续但是降序顺序)?"aBc"
是否正常(当忽略案件时,会有什么问题?)"x@A"
是否正常(根据ascii charater table '@'
在'A'
之前)?如果答案全部是否,则仅提升顺序,案例敏感,两者< / em>字符必须是字母和数字),一个简单的循环解决任务(C#):
string source = "test@01";
bool result = false;
for (int i = 1; i < source.Length; ++i)
if (char.IsLetterOrDigit(source[i]) && char.IsLetterOrDigit(source[i - 1]))
if (source[i] - source[i - 1] == 1) {
result = true;
break;
}
...
Console.Write(result ? "OK" : "Not OK");
编辑如果您想要不区分大小写的测试,则必须进行比较
if (char.ToUpperInvariant(source[i]) - char.ToUpperInvariant(source[i - 1]) == 1)