jourska
Prośba do #programowanie i #programista15k w #csharp chciałem napisać algorytm, który sprawdza czy string jest palindromem, niestety konsola zawsze wyrzuca mi "false"

static bool isPalindrome(string text)
{
char[] charArray = text.ToCharArray();
Array.Reverse(charArray);

if (charArray.Equals(text))

return true;
else return false;

Dopiero się ucze, także proszę o wyrozumiałość ( ͡° ͜ʖ ͡°)
Z góry dzięki miraski :*
  • Najlepsze
  • Wszystkie komentarze
c.....f
c.....f
@a231: W C# nie ma null terminated stringów...
Szab
Szab
2
@jourska: Po pierwsze, przyrównujesz tablicę znaków do stringa. Tak nie można. Zamiast tego stwórz sobie zmienną pomocniczą:

string reversedText = new String(charArray);
i wtedy porównaj. I nie przez if... else... ale zwyczajnie, prosto:

return reversedText.Equals(text);
adios
adios
1
@jourska:

Najszybciej to zamienić ciało tej metody na :

return
a231
a231
0
@jourska: A o \0 pamietasz?
a231
a231
0
@jourska: To bardzo łatwo wyłapać podczas debugowania
jourska
jourska Autor
0
@a231: Co masz na myśli?? :) Bo wychodzi, że nie pamiętam :)
a231
a231
0
@jourska: Poczytaj o terminacji stringów, szczególnie jak chcesz to zrobić na charach
mmmk
mmmk
0
@jourska: Nie programuję w C#, ale kilka pomysłów, co sam bym zrobił w podobnej sytuacji:
1. Wyprintuj sobie text, charArray i zawartość charArray po Array.Reverse
2. Sprawdź, czy Array.Reverse zamienia kolejność elementów "w miejscu", czy też zwraca nową tablicę z odwróconymi elementami
3. Sprawdź, czy charArray.Equals nie porównuje także typów, więc wówczas zawsze Array != string

Trzecie
jakibytulogin
jakibytulogin
@jourska: może tak? if (string.Join(string.Empty, charArray) == text)
adios
adios
0
@jourska: Aha, i weź zrób z tego Extension Method na klasie string ( ͡° ͜ʖ ͡°).
jourska
jourska Autor
0
@adios: @Szab:
Bardzo wam dziękuje, jak ktoś tak sensownie odpisuje i pomaga to więcej się człowiek nauczy,
przede mną jeszcze daleka droga do zostania #programista15k ( ͡° ͜ʖ ͡°)
ZapomnialWieprzJakProsiakiemByl
@jourska: Sprawdź jak taka metoda zareaguje na słowa zaczynające się wielką literą i null

ja_tu_czytam
a nie możesz

string text = "kobyłamamałybok";
return text == new string(text.Reverse().ToArray());