Proste sprawdzenie w języku Java czy wyraz jest palindromem.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import java.util.Scanner; public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Podaj 1 wyraz: "); String a = sc.nextLine(); int h = a.length(); int kk = 0; int k = (h - 1); for (int i = 0; i < h; i++) { if (a.charAt(i) != a.charAt(k)) { kk = 1; break; } k--; } if (kk == 1) System.out.println("Nie jest palindromem"); else { System.out.println("Jest palindromem"); } } } |
Jesteś studentem? Sprawdź czy warto studiować!
Oj daaawnoo mnie tu nie było. Ale wakacje to był czas dużej liczby intensywnych wyjazdów i tak naprawdę, dopiero jakoś… Read More
Cześć! Zapraszam na krótkie podsumowanie kwietnia. Wyjazd do Niemiec A dokładniej pod granicę z Francją. Chrześnica miała pierwszą komunię. Po… Read More
Ostatnio tygodnie były tak bardzo wypełnione, że nie udało mi się napisać nawet krótkiego podsumowanie. Więc dziś zbiorczo podsumuję luty… Read More
Zapraszam na krótkie podsumowanie miesiąca. Książki W styczniu przeczytałem "Homo Deus: Historia jutra". Książka łudząco podoba do wcześniejszej książki tego… Read More
Cześć! Zapraszam na podsumowanie roku 2023. Książki Zacznijmy od książek. W tym roku cel 35 książek nie został osiągnięty. Niemniej… Read More
Zapraszam na krótkie podsumowanie miesiąca. Książki W grudniu skończyłem czytać Mein Kampf. Nudna książka. Ciekawsze fragmenty można by było streścić… Read More
Pokaż komentarze
A nie lepiej StringBuilder'em? Dwie linijki i po sprawie.
String napis = "kajak";
System.out.println(new StringBuilder(napis).reverse().toString().equals(napis));
Ja zrobiłem tak:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package palindrom;
import java.util.Scanner;
/**
*
* @author mulaczos
*/
public class Palindrom {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner klawiatura = new Scanner(System.in);
Sprawdz tekst = new Sprawdz();
String wejscie=klawiatura.nextLine();
String konwersja=tekst.Konwertowanie(wejscie);
String konwersja2=tekst.Wynik(wejscie);
System.out.println(tekst.Porownanie(konwersja,konwersja2));
}
}
class Sprawdz {
String wyjscie;
String wynik;
public String Konwertowanie(String wejscie) {
String jeden=wejscie.replaceAll("[(,.?!;)]" , "");
String dwa=jeden.replaceAll(" +" , "");
String trzy=dwa.toLowerCase();
wyjscie= new StringBuilder(trzy).reverse().toString();
return wyjscie;
}
public String Wynik(String tekst) {
wynik=tekst;
String jeden=tekst.replaceAll("[(,.?!;)]" , "");
String dwa=jeden.replaceAll(" +" , "");
String trzy=dwa.toLowerCase();
return trzy;
}
public String Porownanie (String konwersja, String konwersja2) {
int a=konwersja.compareTo(konwersja2);
if(a!=0) {
return "Twoj tekst "+wynik+" nie jest palindromem";
}
else {
return "Tekst "+wynik+" jest palindromem";
}
}
}
W tym forze jest błąd, trzeba to h jeszcze podzielić przez dwa bo sprawdza 4 znakowe słowo 4 razy a przecież sprawdza ze sobą 2 znaki i przez to zły był wynik :)