Minha questão pede criar uma classe que recebe um nome gerado pelo usuário no terminal e seja capaz utilizar métodos capazes de manipular o nome informado e realizar operações sobre ele.
A primeira é para retornar o primeiro caractere de todos os nomes informados em letra maiuscula.
O segundo é para retornar o primeiro nome e o ultimo sobrenome do usuário por exemplo: josé luis silva. Saída = josé SIlva
Terceiro, um método que retorne só as iniciais do nome.
Quarto, um método tudoMinusculo, que coloque todos os caracteres da string e
m minúsculo (caixa baixa).
Quinto, um método que retorne o tamanho, em número de caracteres, da string a
rmazenada.
Sexto, um método que conte o número de ocorrências de um determinado caracter recebido como parâmetro.
Comecei a fazer o código e pesquisar, tudo bem. Só que depois de pronto só funcionam os dois primeiros métodos. Não acusa o erro no eclipse, mas se seleciono qualquer opção fora a 1 e a 2 o código da erro e não executa o comando.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Informe um nome: ");
String nome = input.nextLine();
System.out.println("Opcoes: \n"
+ "1 - Primeira Maiuscula\n"
+ "2 - Primeiro e último nome\n"
+ "3 - Iniciais\n"
+ "4 - Passar as letras para minusculo\n"
+ "5 - Numero de caracteres\n"
+ "6 - Ocorrencia de uma determinada letra\n");
int opcao = input.nextInt();
switch (opcao) {
case 1:
String Maiuscula = iniMaiuscula(nome);
System.out.println(iniMaiuscula(nome));
break;
case 2:
String primeiroUltimo = primeiroEultimo(nome);
System.out.println(primeiroEultimo(nome));
break;
case 3:
String Inicial = iniciais(nome);
System.out.println("Iniciais: " +iniciais(nome));
break;
case 4:
String Minuscula = minuscula(nome);
System.out.println(minuscula(nome));
break;
case 5:
String numCaracteres = caracteres(nome);
System.out.println(caracteres(nome));
break;
case 6:
String ocorrenciaCar = ocorrencia(nome);
System.out.println(ocorrencia(nome));
break;
default:
break;
}
}
//Questão a
public static String iniMaiuscula(String value) {
String result = "";
String[] nomes = value.split(" ");
for(String palavra : nomes){
result = result + " " + palavra.replaceFirst(palavra.substring(0, 1), palavra.substring(0, 1).toUpperCase());
}
return result.trim();
}
//questão b
public static String primeiroEultimo(String value){
String[] prenomes = value.split(" ");
return prenomes[0] + " " + prenomes [prenomes.length -1];
}
//Questão c
public static String iniciais(String value) {
String primeiraLetraNomeSobrenome = "";
String nome = null;
for (char letra : nome.toCharArray()) {
if (Character.isUpperCase(letra)) {
primeiraLetraNomeSobrenome += letra;
}
}
return nome;
}
//Questão d
public static String minuscula(String value){
String palavra = null;
palavra.toLowerCase();
System.out.println(palavra.toLowerCase());
return palavra;
}
//Questão e
public static String caracteres (String value) {
String str = null;
String frs = str;
int vog = 0, cons = 0;
str= str.toLowerCase();
for(int i = 0; i < str.length(); i++){
char c = str.charAt(i);
if(c == 32) continue;
if(c == 97 | c == 101 | c == 105 | c == 111 | c == 117){
vog++;
continue;
}
if(c >= 98 && c <= 122) cons++;
}
System.out.println("Na frase \""+frs+"\" temos:\nVogais: "+vog+"\nConsoantes: "+cons);
return frs;
}
//questão f
public static String ocorrencia (String value) {
int total=0;
String x = null;
for (int i=0;i<=x.length()-1;i++) {
if (x.substring(i,i+1).equalsIgnoreCase("o"))
total=total+1;
}
System.out.println(total);
return x;
}
}
Alguém pode me dizer o que está errado? Sei que deve ter bastante coisa, mas ainda sou muito leigo em Java.