سؤال

وكيف يمكننا معرفة الحرف التالي من واحد دخل. على سبيل المثال، إذا دخلت الحرف "ب" ثم كيف يمكنني الحصول على الجواب "ج"؟

هل كانت مفيدة؟

المحلول

وجرب هذا:

char letter = 'c';

if (letter == 'z')
    nextChar = 'a';
else if (letter == 'Z')
    nextChar = 'A';

else
    nextChar = (char)(((int)letter) + 1);

وهذه الطريقة يكون لديك أي مشكلة عندما شار هو الأخير من الأبجدية.

نصائح أخرى

وماذا عن:

char first = 'c';
char nextChar = (char)((int) first + 1);

لاحظ أن حرف سوف يلقي ضمنيا إلى int. وهنا حل مبسط:

char incrementCharacter(char input)
{
    return (input == 'z'? 'a': (char)(input + 1));
}

ولعل أبسط طريقة هي صغيرة وظيفة ومجموعة من 26 حرف. ثم يمكنك أن تقرر ما تريد العودة ل 'ض'.

وتحويل الحرف إلى رقم، زيادة عدد وثم تحويل مرة أخرى.

ولكن النظر عما سيحدث ل "ض" أو "á" (الصغيرة اللاتينية Leter A مع الحاد).

وتحتاج إلى مجرد إضافة 1 في شخصية تحصل الحرف التالي. يعمل على قيم ASCII.

وكيف يمكن لنوع؟ في الألمانية (على ما أظن) ينبغي أن فرز بعد، ولكن في السويدية يجب أن تأتي بعد ذلك، والذي بدوره هو بعد ض. هذه ليست مسألة تافهة، إلا إذا تقيد نفسك إلى الإنجليزية.

وهذا تغيير قيمة مفيدة جيئة وذهابا تطبيق Excel لتجد عمود السابق

وسلسلة ثابتة العامة PrevExecelColumn (سلسلة ق)         {             الصورة = s.ToUpper ()؛             شار [] ميلان = s.ToCharArray ()؛             الباحث LN = ac.Length.             ل(كثافة العمليات ط = LN - 1؛ ط> -1. i--)             {                 شار ج = ميلان [أنا]؛

            if (c == 'A')
            {
                ac[i] = 'Z';
                continue;
            }

            ac[i] = (char)(((int)ac[i]) - 1);
            break;

        }
        s = new string(ac);
        return s;
    }  

وجرب هذا:

public string GetNextAlphabetLetter(int indice) {
  return ((char)('A' + indice)).ToString();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top