Alguem consegue me ajudar a resolver esse problema?
Escreva um método que deve receber uma String (de tamanho máximo 100) e um caracter (que deve estar entre as 26 letras do alfabeto sendo válida a versão maiúscula ou minúscula) e retorne as substrings iniciadas e finalizadas com o caracter em questão existentes na String passada como parâmetro.
Olá! Posta aqui o código do que você ja fez? (mesmo que não funcione ainda)
I
isgabriel
não consegui pensar muito bem em como resolver, por isso pedi ajuda
E
Solucao aceita
essevaiproale1 like
Tente isso:
importjava.util.ArrayList;importjava.util.List;publicclassPreguica{publicstaticvoidmain(String[]args){// A frase para analizarStringfrase="Um prato de trigo para tres tigres tristes.";// a lista que vai receber todas as substrings que a função encontrar para imprimirList<String>lista=getSubstrings(frase,'r');// se a lista estiver nula apenas para a execuçãoif(lista==null){return;}// imprimindo a listalista.forEach(substring->System.out.println("Substring : "+substring));}// Metodo que recebe string e char de parâmetroprivatestaticList<String>getSubstrings(Stringstringentrada,charc){// cria uma lista vazia para guardar as substrings encontradasList<String>listadesubstrings=newArrayList<String>();// transforma o char de entrada em uma stringStringcaracter=String.valueOf(c);// lista de caracteres válidos para a buscaStringvalidChars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";// teste sobre caracteres válidos, se o caracter for inválido para a execução e imprime msg de erroif(!validChars.contains(caracter)){System.out.println("'"+caracter+"' não é um caracter válido.");returnnull;}// teste se string esta dentro do tamanho maximo de 100 caracteres permitidosif(stringentrada.length()>100){System.out.println("Sua string tem mais de 100 caracteres, o maximo é 100.");returnnull;}// replace no caracter de filtro para realizar o split e manter o char na stringstringentrada=stringentrada.replaceAll(caracter,"_"+caracter+"_");// split para dividir a string em partes limitadas pelo char de entradaString[]splited=stringentrada.split(caracter);for(Stringv:splited){// devolvendo o char à string cortadaStringsaida=v.replaceAll("_",caracter);// teste pra ver se a substring começa e termina com o char passado como parametroif(saida.substring(0,1).equalsIgnoreCase(caracter)&&saida.substring(saida.length()-1,saida.length()).equalsIgnoreCase(caracter)){// se a substring começa e termina com o char adiciona ela na lista para ser retornadalistadesubstrings.add(saida);}}returnlistadesubstrings;}}
Saida no console:
Substring : rato de tr
Substring : rigo par
Substring : ra tr
Substring : res tigr
Substring : res tr