Buenas, lo primero decir que esta pagina me están ayudando bastante con la programación, así que os doy las gracias. Ahora la duda :)
Esta es la función que tengo hecha para mostrar un fragmento de una cadena que introduce un usuario. Los datos los pido en el programa principal:
<pre lang='Java'>
public static String devolverFragmento(String cadena, int posIni, int posFin){
String fragmento="";
int resto;
for (int x=posIni; x<posFin; x++){
fragmento+=cadena.charAt(x);
if (posFin>cadena.length()){
resto=posFin-cadena.length();
posFin=posFin-resto;
}
}
return fragmento;
}
public static void main (String []args){
Scanner sc = new Scanner (System.in);
String cadena="";
int posIni;
int posFin;
System.out.println("Introduce la posicion inicial");
posIni = sc.nextInt();
System.out.println("Introduce la posicion final");
posFin = sc.nextInt();
System.out.println(devolverFragmento(cadena, posIni, posFin));
System.out.println();
No se si esta bien escrito el código, porque la posición que se introduce no se cuenta a la hora de mostrar el fragmento. Por ejemplo, si tengo la cadena "Hola", y posIni=1 y pos posFin=4, en vez de mostrar "Hola" muestra "ola", comiendose la H. Tambien me da problemas cuando se introducen numero fuera de rango, cosa que tengo que controlar de alguna forma.
Gracias de antemano.