String, substring e char

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)

não consegui pensar muito bem em como resolver, por isso pedi ajuda

Tente isso:

import java.util.ArrayList;
import java.util.List;



public class Preguica {

    public static void main( String[] args ){
	// A frase para analizar
	String frase = "Um prato de trigo para tres tigres tristes.";

	// a lista que vai receber todas as substrings que a função encontrar para imprimir
	List<String> lista = getSubstrings(frase, 'r');

	// se a lista estiver nula apenas para a execução
	if( lista == null ) { return; }

	// imprimindo a lista
	lista.forEach(substring -> System.out.println("Substring : " + substring));

    }

    // Metodo que recebe string e char de parâmetro
    private static List<String> getSubstrings( String stringentrada , char c ){
	// cria uma lista vazia para guardar as substrings encontradas
	List<String> listadesubstrings = new ArrayList<String>();

	// transforma o char de entrada em uma string
	String caracter = String.valueOf(c);

	// lista de caracteres válidos para a busca
	String validChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

	// teste sobre caracteres válidos, se o caracter for inválido para a execução e imprime msg de erro
	if( !validChars.contains(caracter) ) {
	    System.out.println("'" + caracter + "' não é um caracter válido.");
	    return null;
	}

	// teste se string esta dentro do tamanho maximo de 100 caracteres permitidos
	if( stringentrada.length() > 100 ) {
	    System.out.println("Sua string tem mais de 100 caracteres, o maximo é 100.");
	    return null;
	}

	// replace no caracter de filtro para realizar o split e manter o char na string
	stringentrada = stringentrada.replaceAll(caracter, "_" + caracter + "_");

	// split para dividir a string em partes limitadas pelo char de entrada
	String[] splited = stringentrada.split(caracter);


	for ( String v : splited ) {
	    // devolvendo o char à string cortada
	    String saida = v.replaceAll("_", caracter);

	    // teste pra ver se a substring começa e termina com o char passado como parametro
	    if( 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 retornada
		listadesubstrings.add(saida);
	    }
	}
	return listadesubstrings;

    }

}


Saida no console:
Substring : rato de tr
Substring : rigo par
Substring : ra tr
Substring : res tigr
Substring : res tr

1 curtida