String de palavras onde o caracter " . " buga todo o sistema

Boa noite pessoal, estou com o seguinte problema, possuo uma String chamada “banishedWords” em meu programa que serve para fazer o banimento de certos caracteres como " ", " - " , “_”, " ! ", estou com problema ao adicionar o “.”, pois ele buga totalmente o programa, se eu retirar esse " . " o programa funciona normal, o programa é para saber se uma palavra ou frase é um Palíndromo ou não. Segue o código:

import java.util.Scanner;

public class Application {

public static boolean palindrome(String str) {

	String[] banishedWords = { " ", "-", "_", "!", "\\?", "@", ",", "." };

	for (String x : banishedWords) {
		str = str.replaceAll(x, "");
	}
	int sizeStr = str.length();

	StringBuffer sb = new StringBuffer(str);
	sb.reverse();

	for (int i = 0; i < sizeStr; i++) {
		if (str.charAt(i) != sb.charAt(i)) {
			return false;
		}
	}
	return true;
}

public static void main(String[] args) {

	Scanner sc = new Scanner(System.in);

	System.out.println("Entre com uma frase ou palavra: ");
	String str = sc.nextLine().toLowerCase();

	if (palindrome(str)) {
		System.out.println("É um Palíndromo");
	} 
	else {
		System.out.println("Não é um Palíndromo");
	}
	sc.close();

}

}

Coloque com escape:"\\.", por tratar-se de expressão regular.

1 curtida

Não tinha conhecimento sobre essas expressões regulares, e utilizei o escape no “?” e deixei passar isso, muito obrigado ! Voltarei as estudos

Sim.
Aqui um bom material sobre o tema regex: https://youtu.be/YPRbQG0GBME

1 curtida