2017-03-29 21 views
0
public class reverserapp { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     System.out.println("Please Enter a word"); 
     String str = scan.nextLine(); 

     String reverse = ""; 
     for(int i = str.length() - 1; i >= 0; i--) 
      reverse += str.charAt(i); 

     if(reverse.equalsIgnoreCase(str)) 
      System.out.println("Palindrome"); 
     else System.out.println("Not Palindrome"); 

    } 

} 

これは私の回文コードです。私は小さな課題のためにこれをやっています。私は仕事をするために単一の単語を得ることができますが、私は "頷いてはいけない"のようなものを書く場合、それは回文としては表示されません。どうすればこれを達成できますか?コードで句読点や空白を無視したいのですが。回文の空白を取り除く方法(Java)

だから、最終的な結果に「dontnod」のように、この時任意のヘルプ、完全なnoobのために事前に

感謝しなければなりません。

+0

何を定義することができますか? –

+1

regexを使用してスペースやその他の文字をすべて削除してください(%$ @ $#^ * – Omore

答えて

4

小文字に結果Stringを入れて、その後、すべての非文字の文字を削除します。

str = str.replaceAll("[^a-zA-Z]", ""); 
str = str.toLowerCase(); 
+1

)これはうまくいった。そして、すみません、返事をしてくれてありがとう、みんなのコードを混乱させ、それがどうなるか見てみてください。 –

1

は、の代わりにStringUtilsの機能を使用できます。

例:

StringUtils.replace("asdasd aaaa", " ", ""); //-> output: asdasdaaaa 
1

あなたは最初にそれらをフィルタリングについて:例えば、regexは、句読点やスペースを削除して、入力時に文字列replaceを実行するために

String regex = "[\\p{Punct}\\s]"; 
String input = "don't nod"; 
System.out.println(input.replaceAll(regex, "")); 
関連する問題