Parte da frase letra maiuscula e outra minuscula em Java

Estou iniciando em java e gostaria de saber como faço para parte da frase “Noite Feliz” fique em maiuscula e parte em minuscula.
Ex: noite feLIZ (fique dessa forma)

    System.out.println(stringParaMaiuscula("Noite Feliz", 8, 11));

    /*
     * @int inicio, De onde vai começar a ficar maiúsculo
     * @int fim, Até onde vai ficar maiusculo
     */
    public String stringParaMaiuscula(String string, int inicio, int fim)
    {
        String minuscula = string.toLowerCase();
        String subString = minuscula.substring(inicio, fim);

        return minuscula.replaceFirst(subString, subString.toUpperCase());
    }

Amigo eu tentei mas não esta imprimindo da forma que gostaria. No trecho … ```
minuscula.substring(inicio, fim); o substring recebe dois parâmetros, e no seu codigo tem inicio e fim.

Como quer que funcione?

Parte da frase fique em minuscula e parte maiuscula… noite felIZ <— assim

É exatamente o que o código acima faz.

Se vc tentou mas não está funcionando, então coloque o seu código, senão não tem como saber o que está errado.

System.out.println(stringParaMaiuscula("Noite Feliz", 8, 11));

Exemplo, ele joga a frase toda pra caixa baixa
depois, começando do oitavo caracter, até o décimo primeiro ele joga para caixa alta.

se mudar os valores de inicio e fim, ele dá outros resultados.

System.out.println(stringParaMaiuscula("Noite Feliz", 3, 8));

imprime: noiTE FEliz

Acho que assim ficou melhor.

public String stringParaMaiuscula(String string, int inicio)
{
    return stringTratada(string, string.substring(inicio));
}

public String stringParaMaiuscula(String string, int inicio, int fim)
{
    return stringTratada(string, string.substring(inicio, fim));
}

private String stringTratada(String string, String subString)
{
    return string.toLowerCase().replaceFirst(subString.toLowerCase(), subString.toUpperCase());
}

System.out.println(stringParaMaiuscula("Noite Feliz", 8, 11)); // noite feLIZ
System.out.println(stringParaMaiuscula("Noite Feliz", 3, 8)); // noiTE FEliz
System.out.println(stringParaMaiuscula("Noite Feliz", 6)); // noite FELIZ

ESSE É O MEU CODIGO
O QUE ESTOU FAZENDO DE ERRADO?

package exer01;

public class toUpperCase {

	public static void main(String[] args) {
				
System.out.println("-----------------------------------------");
		
        resultFrase("Noite Feliz");
		
		
System.out.println("------------------------------------------");
	
			
	}

	public static void resultFrase(String nome) {
		 System.out.println(nome.substring(0, 7).toLowerCase().replaceFirst(nome, nome.substring(7, 10)));
		 
		
	 }
	
}

package exer01;

public class toUpperCase {

public static void main(String[] args) {

System.out.println(“-----------------------------------------”);

    resultFrase("Noite feliz");

System.out.println(“------------------------------------------”);

}

public static void resultFrase(String nome) {
	 System.out.println(nome.substring(0, 7).toLowerCase().replaceFirst(nome, nome.substring(7, 10)));
	 
	
 }

}

Já foi postado a solução pra você, seu erro é que você não está fazendo igual lhe foi passado.