Strings

12 respostas Resolvido
java
A

[Resolvido]

12 Respostas

C

Troque o && ( e ) pelo || ( ou ), porque você está pedindo que ela faça quando A ‘e’ a, E ‘e’ '…

Entendeu?

Substituindo, ficaria A ou a, E ou e…

Só trocar o operador && pelo ||

D

Não entendi, não ficou muito claro se não deve repetir a consoante em toda a frase, ou se não deve repetir sequencialmente a consoante.

Exemplo:

A frase "A arara fugiu da gaiola." tem 7 consoantes, a letra r e a letra g se repetem, então o programa deveria imprimir 5. Use um array de boolean para identificar se a letra apareceu ou não.

boolean[] letrasEncontradas = new boolean['Z' - 'A' + 1];
s = s.toUpperCase();
for (i=0; i<n; i++) {
  if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') {
    int indice = s.charAt(i) - 'A';
    letrasEncontradas[indice] = true;
  }
}

Depois conte quantas consoantes são true. Mais informações: http://www.hardware.com.br/comunidade/strings-consoantes/1418334/

D

Não é um trabalho dificil, tem muita lógica envolvida:

//Array que conterá os dados e sua quantidade de consoantes
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, espaços e caracteres especiais e acentudação
String cfras = frase.replaceAll("[AEIOUÁÉÍÓÚÂÊÎÔÛÃÕÜÀaeiouáéíóúâêîôûãõüà �]", "");

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("A frase é: " + frase + " e o número de consoantes são: " + 
                                                           consoantes.size());

A mágica está nessa linha se precisar excluar mais algum caracter coloque nessa linha:

//exclusão das vogais, espaços e caracteres especiais e acentudação
String cfras =
            frase.replaceAll("[AEIOUÁÉÍÓÚÂÊÎÔÛÃÕÜÀaeiouáéíóúâêîôûãõüà �]", "");
A

Não, essa parte tá certa, porque eu tô dizendo que quando não for vogal de jeito nenhum, será consoante.

A

fica dando erro na parte do size :disappointed_relieved:

D

O que você fez? O código colocado foi testado!

A

Da mesma forma que você colocou aqui, eu coloquei lá. Eu teria que manter alguma parte do meu código?

D

Código que eu coloque está correto, é um exemplo, você realmente seguiu o que eu coloquei?
Sinceramente?

A
Solucao aceita
import java.util.Scanner;
	public class oi{
		public static void main(String[] args) {
		//Array que conterá os dados e sua quantidade de consoantes
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, espaços e caracteres especiais e acentudação
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("A frase é: " + frase + " e o número de consoantes são: " + 
                                                     consoantes.size());
D

Observe o quanto você não observou a minha rotina:

String cfras =
            frase.replaceAll("[AEIOUÁÉÍÓÚÂÊÎÔÛÃÕÜÀaeiouáéíóúâêîôûãõüà �]", "");

O replaceAll("[]"), precisa de um parenteses no inicio e no final para dar certo, porque, é um grupo.

Então pelo seu resumo:

String cfras = frase.replaceAll("[AEIOUaeiou]", "");
D

Código funcionando:

DEMO

/* package whatever; // don't place package name! */

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

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	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, espaços e caracteres especiais e acentudação
			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("A frase é: " + frase + " e o número de consoantes são: " + 
                                                     		consoantes.size());
	}
}

Observe ai o que esta acontecendo!

A

Deu certo. Muito obrigada!

Criado 26 de julho de 2016
Ultima resposta 27 de jul. de 2016
Respostas 12
Participantes 4