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ć!
Mateusz Mazurek
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 :)