2016-10-27 7 views
-2

Я пытаюсь проверить, если строка содержит последовательные символы в vb.netкак проверить, если строка имеет последовательные символы в vb.net

Пример:

'[email protected]' - not ok 
'[email protected] - ok 
'testab' - not ok 
'testac' - ok 
'testabc' not ok 

строка не должна иметь какой-либо последовательный персонажи. (оба номера & алфавиты) буквенно-цифровые

Любая помощь приветствуется.

+0

Просьбы [Minimal, полный и проверяемый примера] (http://stackoverflow.com/help/mcve), AKA попробуйте что-нибудь. Также C#! = VB.net, пожалуйста, не спам-теги. – George

+0

напишите свой ввод строки. И C# или vb.net? –

+1

Regex - не ваш лучший друг здесь, он будет очень длинным. –

ответ

2

Вы проблема очень неопределенный один. Не говоря уже о языке (C# или VB) там уже много неясностей:

  • ли "cba" OK (conseq но в убыванию заказ.)?
  • Is "aBc" OK (в случае когда случай игнорируется)?
  • есть "[email protected]" OK (соответствует ascii charater стол '@' предел 'A')?

в случае, когда ответы всего Нет «s (восходящего заказ только случай чувствительного, оба символов должны быть буквы и цифры только), простой цикл решает задачу (C#):

string source = "[email protected]"; 
    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"); 

Edit: если вы хотите регистрозависимость теста вы должны сравнить

if (char.ToUpperInvariant(source[i]) - char.ToUpperInvariant(source[i - 1]) == 1) 
+0

Спасибо. дайте мне несколько минут. Я попробую это и дам вам знать –

+0

спасибо за редактирование !! это сработало. Спасибо, что ты сделал мой день. Работал во всех сценариях. –

Смежные вопросы