Στο παρακάτω άρθρο θα δούμε μια ακόμα άσκηση για να ξεσκουριάσουμε λίγό το μυαλό και να μελετήσουμε κάποιες μεθόδους από βιβλιοθήκες της Microsoft.
Το παρόν πρόγραμμα είναι το ReverseString όπου θα προσπαθήσουμε να αντιστρέψουμε ένα κείμενο. Για παράδειγμα το «κικονικο» θα γίνει «οκινοκικ». Δημιουργούμε λοιπόν ένα consol app και στην main γράφουμε το πρόγραμά μας. Το πρόγραμμα είναι καθαρό και unit-testable. Η κλάση είναι σε ξεχωριστό αρχείο απο τη main, ακολουθόντας τις SOLID principles.
namespace ReverseString
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Running Challenge 01: ReverseString");
Console.Write("Enter a string to reverse: ");
string input = Console.ReadLine() ?? "throw new ArgumentException(\"Input cannot be null, empty, or whitespace.\");";
// Καλούμε τη μέθοδο της ξεχωριστής κλάσης
string reversed = StringUtilities.Reverse(input);
Console.WriteLine($"Reversed string: {reversed}");
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
Ακολουθεί η κλάση και η private μέθοδό της.
namespace ReverseString
{
public static class StringUtilities
{
public static string Reverse(string input)
{
if (input == null)
throw new ArgumentNullException(nameof(input), "Input cannot be null.");
char[] charArray = input.ToCharArray();
Array.Reverse(charArray);
return new string(charArray);
}
private static string ReverseString(string input)
{
if (input == null)
throw new ArgumentNullException(nameof(input), "Input cannot be null.");
char[] charArray = input.ToCharArray();
Array.Reverse(charArray);
return new string(charArray);
}
}
}
Η μέθοδος ToCharArray() μετατρέπει ένα string σε πίνακα χαρακτήρων (char[]), όπου κάθε χαρακτήρας αναπαρίσταται εσωτερικά από έναν αριθμητικό κωδικό. Οι κωδικοί αυτοί προέρχονται από τα πρότυπα ASCII και Unicode. Το ASCII καλύπτει μόνο αγγλικούς χαρακτήρες και βασικά σύμβολα, ενώ το Unicode περιλαμβάνει χαρακτήρες από όλες τις γλώσσες και ειδικά σύμβολα.
Κάθε char μέσα στο charArray αντιστοιχεί σε έναν μοναδικό αριθμό Unicode, και η μέθοδος επιτρέπει την επεξεργασία των χαρακτήρων, όπως η αντιστροφή σε μια μέθοδο ReverseString().
Παράδειγμα:
string input = "Aν1";
char[] chars = input.ToCharArray();
- 'A' → Unicode 65
- 'ν' → Unicode 957
- '1' → Unicode 49
Το chars τώρα περιέχει: ['A', 'ν', '1'] και μπορεί να αντιστραφεί ή να επεξεργαστεί όπως χρειάζεται.
Top comments (0)