Controlla la stringa Palindrome in C#

Muhammad Maisam Abbas 16 febbraio 2024
  1. Controllare la stringa Palindrome con il metodo String.Substring() in C#
  2. Controllare la stringa Palindrome con il metodo LINQ in C#
Controlla la stringa Palindrome in C#

Questo tutorial introdurrà i metodi per verificare se una stringa è palindromo o meno in C#.

Controllare la stringa Palindrome con il metodo String.Substring() in C#

Una stringa è considerata palindromo se viene letta allo stesso modo avanti e indietro. Sfortunatamente, non esiste un metodo integrato per verificare se una stringa è un palindromo o meno in C#. Ma possiamo usare il metodo String.Substring() per dividere la stringa dal centro per ottenere la prima metà. Possiamo ottenere il contrario della seconda metà convertendo la stringa in un array di caratteri, invertendo la sequenza di caratteri con il metodo Array.Reverse(), convertendo l’array inverso in una stringa, quindi dividere la nuova stringa da al centro con il metodo String.Substring(). Se la prima metà è uguale al rovescio della seconda metà, la corda è un palindromo. Se la prima metà non è uguale alla seconda, la corda non è un palindromo. Il seguente esempio di codice ci mostra come possiamo controllare se una stringa è un palindromo o meno con il metodo String.Substring() in C#.

using System;
using System.Linq;

namespace palindrome {
  class Program {
    public static bool checkPalindrome(string mainString) {
      string firstHalf = mainString.Substring(0, mainString.Length / 2);
      char[] arr = mainString.ToCharArray();

      Array.Reverse(arr);

      string temp = new string(arr);
      string secondHalf = temp.Substring(0, temp.Length / 2);

      return firstHalf.Equals(secondHalf);
    }
    static void Main(string[] args) {
      bool palindrome = checkPalindrome("12321");
      Console.WriteLine(palindrome);
    }
  }
}

Produzione:

True

Nel codice precedente, abbiamo verificato se la stringa 12321 è un palindromo o meno con il metodo String.Substring() in C#.

Controllare la stringa Palindrome con il metodo LINQ in C#

Il metodo SequenceEqual() all’interno di LINQ confronta due sequenze di elementi in C#. Il metodo Reverse() all’interno di LINQ inverte gli elementi di una sequenza in C#. Possiamo usare il metodo Reverse() per invertire la nostra stringa e confrontarla con la stringa originale usando il metodo SequenceEqual(). L’esempio di codice seguente mostra come verificare se una stringa è un palindromo o meno con il metodo LINQ in C#.

using System;
using System.Linq;

namespace palindrome {
  class Program {
    public static bool checkPalindrome2(string mainString) {
      return mainString.SequenceEqual(mainString.Reverse());
    }
    static void Main(string[] args) {
      bool palindrome = checkPalindrome2("12321");
      Console.WriteLine(palindrome);
    }
  }
}

Produzione:

True

Nel codice sopra, abbiamo verificato se la stringa 12321 è un palindromo o meno con i metodi SequenceEqual() e Reverse() in C#. Questo approccio è preferito rispetto al precedente perché è più semplice.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Articolo correlato - Csharp String