[RESOLVIDO] String

Galera, tenho um código que lê uma String e mostra a quantidade de consoantes (não repetidas) na String.
Só que eu tento fazê-lo fazer a mesma coisa com vogais substituindo apenas a parte que exclui as vogais por exclusão das consoantes e não dá certo. Alguém pode me ajudar?

Código das consoantes:

import java.util.;
import java.lang.
;
import java.io.*;

public class questaoOrig {

public static void main(String[] args) throws java.lang.Exception {
    Map<String, Integer> consoantes = new HashMap<>();
    Scanner in = new Scanner(System.in);
    System.out.println("Insira a frase");
    String frase = in.nextLine();
    //exclusão das vogais
    String cfras = frase.replaceAll("[AEIOUaeiou ]", "");
    for (char letra : cfras.trim().toCharArray()) {
        if (consoantes.get(String.valueOf(letra)) == null) {
            consoantes.put(String.valueOf(letra), 1);
        } else {
            consoantes.replace(String.valueOf(letra),
                    consoantes.get(String.valueOf(letra)) + 1);
        }
    }
    System.out.println("Quantidade de consoantes: "
            + consoantes.size());
}

}

Código modificado tentando fazer o mesmo para vogais:

import java.util.*;
import java.lang.*;
import java.io.*;

public class questaoModf {

    public static void main(String[] args) throws java.lang.Exception {
        Map<String, Integer> vogais = new HashMap<>();

        Scanner in = new Scanner(System.in);

        System.out.println("Insira a frase");
        String frase = in.nextLine();

        //exclusão das consoantes
        String cfras = frase.replaceAll("[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz]", "");

        for (char letra : cfras.trim().toCharArray()) {

            if (vogais.get(String.valueOf(letra)) == null) {
                vogais.put(String.valueOf(letra), 1);
            } else {
                vogais.replace(String.valueOf(letra),
                        vogais.get(String.valueOf(letra)) + 1);
            }
        }
        System.out.println("Quantidade de vogais: " + vogais.size());
    }
}

Você quer excluir as consoantes e ficar com as vogais é só inverter aqui

de

//exclusão das vogais
String cfras = frase.replaceAll("[AEIOUaeiou ]", "");

para

//exclusão das consoantes
String cfras = frase.replaceAll("[^AEIOUaeiou ]", "");

Ou seja, só vai retornar as vogais!

Aqui mesmo tem um exemplo: Negar Expressão Regular

e outros http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html

1 curtida

Obrigada, mais uma vez.