Apakah ada cara mudah untuk menghasilkan array yang berisi huruf-huruf alfabet di C #? Tidak terlalu sulit untuk melakukannya dengan tangan, tetapi saya bertanya-tanya apakah ada cara yang dibangun untuk melakukan ini.
Apakah ada cara mudah untuk menghasilkan array yang berisi huruf-huruf alfabet di C #? Tidak terlalu sulit untuk melakukannya dengan tangan, tetapi saya bertanya-tanya apakah ada cara yang dibangun untuk melakukan ini.
Jawaban:
Saya tidak berpikir ada cara yang dibangun, tapi saya pikir yang termudah adalah
char[] alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
C # 3.0:
char[] az = Enumerable.Range('a', 'z' - 'a' + 1).Select(i => (Char)i).ToArray();
foreach (var c in az)
{
Console.WriteLine(c);
}
ya itu berhasil bahkan jika satu-satunya kelebihan Enumerable.Range menerima parameter int ;-)
String.Concat(Enumerable.Range('a', 'z' - 'a' + 1).Select(c => ((char)c).ToString().ToUpperInvariant()));
kembali ABCDEFGHIJKLMNOPQRSTUVWXYZ
;
Enumerable.Range('a', 26)
char[] alphabet = Enumerable.Range('A', 26).Select(x => (char)x).ToArray();
Saya menulis ini untuk mendapatkan kode kolom MS excel (A, B, C, ..., Z, AA, AB, ..., ZZ, AAA, AAB, ...) berdasarkan indeks berbasis 1. (Tentu saja, beralih ke berbasis nol hanya berhenti column--;
di awal.)
public static String getColumnNameFromIndex(int column)
{
column--;
String col = Convert.ToString((char)('A' + (column % 26)));
while (column >= 26)
{
column = (column / 26) -1;
col = Convert.ToString((char)('A' + (column % 26))) + col;
}
return col;
}
Convert.ToString
dengan String.valueOf
membuatnya berfungsi di Java :)
Dengan asumsi yang Anda maksud adalah huruf-huruf alfabet bahasa Inggris ...
for ( int i = 0; i < 26; i++ )
{
Console.WriteLine( Convert.ToChar( i + 65 ) );
}
Console.WriteLine( "Press any key to continue." );
Console.ReadKey();
Anda bisa melakukan sesuatu seperti ini, berdasarkan nilai ascii dari karakter:
char[26] alphabet;
for(int i = 0; i <26; i++)
{
alphabet[i] = (char)(i+65); //65 is the offset for capital A in the ascaii table
}
(Lihat tabel di sini .) Anda baru saja mentransmisikan dari nilai int karakter ke nilai karakter - tetapi, itu hanya berfungsi untuk karakter ascii bukan bahasa yang berbeda, dll.
EDIT: Seperti yang disarankan oleh Mehrdad di komentar untuk solusi serupa, lebih baik melakukan ini:
alphabet[i] = (char)(i+(int)('A'));
Ini mentransmisikan karakter A ke nilai intnya dan kemudian meningkatkannya berdasarkan ini, jadi tidak di-hardcode.
char[] alphabet = new char[26];
?
Perhatikan juga, string memiliki operator [] yang mengembalikan Char, dan merupakan IEnumerable<char>
, jadi untuk sebagian besar tujuan, Anda dapat menggunakan string sebagai char []. Karenanya:
string alpha = "ABCDEFGHIJKLMNOPQRSTUVQXYZ";
for (int i =0; i < 26; ++i)
{
Console.WriteLine(alpha[i]);
}
foreach(char c in alpha)
{
Console.WriteLine(c);
}
Terkejut tidak ada yang menyarankan solusi hasil:
public static IEnumerable<char> Alphabet()
{
for (char letter = 'A'; letter <= 'Z'; letter++)
{
yield return letter;
}
}
Contoh:
foreach (var c in Alphabet())
{
Console.Write(c);
}
for
lingkaran.
yield return
bagian, itu tidak benar-benar setara dengan for loop. Ini sedemikian rupa sehingga dapat digunakan untuk mengembalikan deret tak hingga dengan malas.
while
penghitung yang menaikkan setiap belokan dan berakhir pada nilai tetap. Itulah tepatnyafor
dirancang untuk diganti.
var alphabets = Enumerable.Range('A', 26).Select((num) => ((char)num).ToString()).ToList();
char alphaStart = Char.Parse("A");
char alphaEnd = Char.Parse("Z");
for(char i = alphaStart; i <= alphaEnd; i++) {
string anchorLetter = i.ToString();
}
char alphaStart = 'A';
, dengan tanda kutip tunggal, bukan tanda kutip ganda.
//generate a list of alphabet using csharp
//this recurcive function will return you
//a string with position of passed int
//say if pass 0 will return A ,1-B,2-C,.....,26-AA,27-AB,....,701-ZZ,702-AAA,703-AAB,...
static string CharacterIncrement(int colCount)
{
int TempCount = 0;
string returnCharCount = string.Empty;
if (colCount <= 25)
{
TempCount = colCount;
char CharCount = Convert.ToChar((Convert.ToInt32('A') + TempCount));
returnCharCount += CharCount;
return returnCharCount;
}
else
{
var rev = 0;
while (colCount >= 26)
{
colCount = colCount - 26;
rev++;
}
returnCharCount += CharacterIncrement(rev-1);
returnCharCount += CharacterIncrement(colCount);
return returnCharCount;
}
}
//--------this loop call this function---------//
int i = 0;
while (i <>
{
string CharCount = string.Empty;
CharCount = CharacterIncrement(i);
i++;
}
if
dan while
)
4 cara mendapatkan alfabet Inggris di Konsol:
public void ShowEnglishAlphabet()
{
var firstLetter = 'a';
var endLetter = 'z';
for (var letter = firstLetter; letter <= endLetter; letter++)
{
Console.WriteLine($"{letter}-{letter.ToString().ToUpper()}");
}
}
public void ShowEnglishAlphabetFromUnicodeTableDecNumber()
{
var firstLetter = 97;
var endLetter = 122;
for (var letterNumberUnicodeTable = firstLetter;
letterNumberUnicodeTable <= endLetter; letterNumberUnicodeTable++)
{
Console.WriteLine($"{(char)letterNumberUnicodeTable}-
{((char)letterNumberUnicodeTable).ToString().ToUpper()}");
}
}
public void ShowEnglishAlphabetUnicodeTableEscapeSequence()
{
var firstLetter = '\u0061';
var endLetter = '\u007A';
for (var letterNumberUnicodeTable = firstLetter;
letterNumberUnicodeTable <= endLetter; letterNumberUnicodeTable++)
{
Console.WriteLine($"{letterNumberUnicodeTable}-
{letterNumberUnicodeTable.ToString().ToUpper()}");
}
}
public void ShowEnglishAlphabetUnicodeTableLinq()
{
var alphabets = Enumerable.Range('a', 26).Select(letter =>
((char)letter).ToString()).ToList();
foreach (var letter in alphabets)
{
Console.WriteLine($"{letter}-{letter.ToUpper()}");
}
}