Po kilkuletniej przerwie od programowania wróciłem do tej zabawy i chciałbym, abyście mi wskazali jakieś błędy, czego unikać, na co zwrócić uwage. Program jest dość krótki, ale myśle, że i wy z tego coś wyciągniecie :P
Program to zabawa "PigLatin". W skrócie, jeśli pierwsza litera jest spółgłoską to przenoszę ją na koniec, podobnie z drugą i dodaje na koncu ay
, jeśli samogłoska to nic nie przenosze i dodaje yay
.
import java.util.Scanner;
public class PigLatin{
public static void main(String[] args){
Scanner skaner = new Scanner(System.in);
while(true)
{
String word = skaner.nextLine();
boolean tmp=false; //sprawdzam czy pierwsza litera byla spolgloska, by wiedziec czy dodac ay czy yay
for(int i=0;i<2;i++) if(check_letter(word.charAt(0))==0){
word = place_at_end(word);
tmp=true;
}
word+=tmp?"ay":"yay";
System.out.println(word);
}
}
private static String place_at_end(String word) {
StringBuilder a = new StringBuilder(word);
for(int i=0;i<word.length();i++) {
try{
a.setCharAt(i, word.charAt(i+1));
}catch(StringIndexOutOfBoundsException e) {};
}
a.setCharAt(word.length()-1, word.charAt(0));
return a.toString();
}
private static int check_letter(char charAt) {
char[] vowel = new char[]{'a','e','i','u','o','y'};
for(int i=0;i<6;i++){
if(charAt==vowel[i]) return 1;
}
return 0;
}
}
Ja wiem, że pewnie można zrobić to na milion innych, szybszych sposobów, ale tu chciałbym usłyszeć "tego się nie używa!", "tu możesz mieć wyjątek i program się wysypać!"
Zanim porzuciłem programowanie, to mój poziom też nie był wysoki, wiec można powiedzieć, że startuje od zera. Bez niepotrzebnego hejtu proszę :)