JAVA - cómo hacer caso omiso de todas las palabras que contienen las letras no alfabéticos

jeispyun:

Mi programa lee el archivo txt con escáner y guardar todos y cada uno palabras que en ArrayList, palabra por palabra, mediante el uso de Scanner.next (). Aquí, cualquier palabra que contiene letras alfabéticas no deben pasarse por alto, es decir, no debe ser contado como palabra en absoluto (no reemplazarlos). Por ejemplo: "U2", "los datos basados ​​en" o "hola!" no debe ser contado en absoluto.

Podría llegar a leer todas las palabras y guardarlo en ArrayList, pero estoy atascado con ignorando las palabras que contengan el elemento no sea una letra.

Este es mi código parcial:

public static void main(String[] args) {
    ArrayList<Word> wordList = new ArrayList<Word>();
    int wordCount = 0;
    Scanner input;

    try {
        System.out.println("Enter the file name with extension: ");
        input = new Scanner(System.in);
        File file = new File(input.nextLine());
        input.close();
        input = new Scanner(file);
        while(input.hasNext())
        {
            Word w = new Word(input.next().toLowerCase()); //should be case-insensitive
            if(!wordList.contains(w)) //equals method overriden in Word class
            wordList.add(w);
            else 
            {
                wordList.get(wordList.indexOf(w)).addCount();
            }
            wordCount++;
        }
        input.close();

clase palabra se define por mí y es sólo una clase sencilla con los atributos de la palabra (String) y el recuento (int). es igual a () se definió método.

Creo que la expresión regular sería la solución para esto, pero ya no estoy seguro de cómo definir "no alfabético" en expresiones regulares (no tengo conocimiento de expresiones regulares) No puedo definir gama sólida ..

¡Cualquier ayuda sería apreciada!

Nicholas K:

Se puede utilizar la expresión regular ^[a-zA-Z]*$para que coincida con sólo alfabetos. Utilice esta antes de agregar al ArrayList.

Ahora se puede utilizar el .matches()de la clase String para comprobar si contiene sólo los alfabetos. Un ejemplo:

String str = "asd";
if (str.matches(^[a-zA-Z]*$)) {
   // only alphabets
} else {
   // something else
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=209424&siteId=1
Recomendado
Clasificación