Gerar novo RA invertendo 4 ultimos numeros

Galera eu tenho que fazer o seguinte:

Descreva um programa que recebe o valor de um RA (número composto por 9 dígitos) e gere um novo RA pela inversão dos 4 dígitos menos significativos do RA inicial.

Exemplificando, se RA inicial for 972845236 então o RA novo deve ser 972846325. Se RA inicial for 984475211 então o RA novo deve ser 984471125.

O algoritmo deve receber RA inicial e apresentar o RA novo.

Bom eu consegui só fazer isso, não estou conseguindo como fazer essa parte de inverter os 4 últimos números, não faco a minima ideia de como fazer isso, alguém me Help ?

package Estudo;

public class Array {

	public static void main (String [] args) {
		
		String [] MeuArray = new String [] {"9","7","2","8","4","5","2","3","6"};
		int tamanho = MeuArray.length;
		String[] arrayAux = new String[tamanho];
		for (int i = 0; i < arrayAux.length; i++) {
		    tamanho -- ;
		    arrayAux[i] = MeuArray [tamanho];
		    
		    System.out.println(arrayAux[i]);
		}
	}
}
1 curtida
public class Exemplo {

    public static void main(String[] args) {
        Exemplo programa = new Exemplo();
        programa.executar();
    }

    public void executar() {
        String string = "972845236";
        System.out.println("original:  " + string);
        string = inverterRA(string);
        System.out.println("invertido: " + string);

        string = "984475211";
        System.out.println("original:  " + string);
        string = inverterRA(string);
        System.out.println("invertido: " + string);
    }

    private String inverterRA(String ra) {
        String inicio = ra.substring(0, 5);
        String fim = new StringBuilder(ra.substring(5)).reverse().toString();
        return inicio + fim;
    }
}
4 curtidas

Pergunta com bela elaboração e explicação, ficou bem claro a sua duvida, parabéns.

1 curtida