Teniendo en cuenta que este método realiza una combinación de texto, creo que seria mas apropiado un nombre como: public String combinarTextos ext.
En cuanto al funcionamiento del método, funciona correctamente, usando el método substring
En cuanto a lo que pide el ejercicio, no cumple del todo lo que se pide, porque solo toma las tres primeras letras de la segunda cadena de texto, y el ejercicio pide que sustraiga las 4 primeras letras. Bastaría con cambiar en tu código: valorTexto2.substring(0,3) por valorTexto2.substring(0,4).
Te comento un poco sobre el método substring: Este método sustrae una parte (o todo) de un String mediante los indices tipo int que indiquemos para crear un nuevo String.
El primer indice indica la primera letra que sera sustraída, (contando desde 0) el segundo indice indica la ultima letra que sera sustraída, (contando desde 1) siendo así, si tenemos el String "hola" e invocamos sobre ese String el método substring con los indices (1,4); estamos indicando que del String "hola" se sustraiga desde la letra en posición 1 contando desde 0 ("o") hasta la letra en posición 4 contando desde 1 ("a"); el método entonces nos devuelve el nuevo String: "ola" y excluye la letra en posición 0 ("h")
Este es un método sencillo que entre veces se nos puede tornar complejo, pero con el tiempo y practica se llega a dominar.
Saludos!