Inverte e multiplica

Boa tarde!!!
como que faço para criar um programa em java, para imprimir invertido os valores digitados e multiplica los de acordo com a sua sequência ?
Ex
digito “246” pegaria resultado de “1x6 + 2x4 + 3x2”

por enquanto só esta invertendo as posições
alguém pode me ajudar?

     String valor = txtValor.getText();
     int q = valor.length();
     String resultado = "";
     
     for (int i = 0; i < q; ++i) {
         resultado = valor.charAt (i) + resultado;
     }
     JOptionPane.showMessageDialog (null,  resultado );
   

Tenta isso aí…

              String valor = "246";
	      int q = valor.length();
	      String resultado = "";
	      int soma = 0;
	      
	      for (int i = 0; i < q; ++i) {
	    	  String valorAtual = "";
	    	  valorAtual = Character.toString(valor.charAt(i));
	    	  resultado = valorAtual + resultado;
	          soma += Integer.parseInt(valorAtual)*(q-i);
	      }
	      JOptionPane.showMessageDialog (null,  resultado + " - " + soma);		

A partir do que você fez:

int soma = 0;
for( int i = 0; i < resultado.length(); i++ )
{
	// transforma char em String para fazer a conversão
	// para inteiro depois
	String numero = String.valueOf( resultado.charAt( i ) );
	soma += Integer.parseInt( numero ) * i;
}

System.out.println( soma );

Existem outras muitas formas de implementar isso.

Refatore isso aí como preferir:

      String valor = txtValor.getText();
      int q = valor.length();
      String resultado = "";
      int soma = 0;
	      
      for (int i = q-1; i >= 0; i--) {
          resultado = resultado + valor.charAt (i);
          soma = soma + Integer.parseInt( String.valueOf(valor.charAt(i)) ) * (q-i);
      }

      JOptionPane.showMessageDialog (null,  resultado );

Muito obrigado pela ajuda!!!
mas vc poderia me explicar o comando valueOf e i charAt pois não entendo muito bem o seu significado… valew

String.valueOf() é um método que tranforma o valor passado como parâmetro num objeto do tipo String.

int i = 2;
String s = String.valueOf( i ); // s agora tem o valor "2"

o String.charAt() você já usou. Retorna o caractere na posição passada como parâmetro, sendo 0 a primeira posição:

String s = "abc";
char c = s.charAt( 1 ); // c = 'b'