Pessoal, muito obrigado, resolveu o meu problema.
Só fui ver as respostas hoje.
O Double.parseDouble funcionou legal, mas é aquilo que comentaram: só funciona com separador decimal sendo ponto.
Vou deixar um código exemplo aqui para se alguém precisar um dia.
public class ConversaoNumerosFortran {
public void carregarNumeros(String[] numeros) {
numeros[0] = ".00000000";
numeros[1] = ".1021E+05";
numeros[2] = "-.2003E-01";
numeros[3] = ".2114E+05";
numeros[4] = "-.3197E-01";
numeros[5] = ".3574E+08";
numeros[6] = ".3891E+08";
numeros[7] = ".6158";
numeros[8] = ".6420E+07";
numeros[9] = "-.8783";
numeros[10] = "0.000000E+00";
numeros[11] = "0.9228";
numeros[12] = "1.760";
numeros[13] = "10.000000";
numeros[14] = "110.000000";
numeros[15] = "112.7";
numeros[16] = "1311.";
numeros[17] = "14.14";
numeros[18] = "2.056";
numeros[19] = "210.00000";
numeros[20] = "239.0";
numeros[21] = "2534.";
numeros[22] = "271";
numeros[23] = "33.9";
numeros[24] = "353.0";
numeros[25] = "37.4";
numeros[26] = "39.353530";
numeros[27] = "40.2";
numeros[28] = "41.800000";
numeros[29] = "42.3";
numeros[30] = "46.07";
numeros[31] = "5978.";
numeros[32] = "6.670";
numeros[33] = "68";
numeros[34] = "7.000000";
numeros[35] = "7.428";
}
public static void main(String[] args) {
ConversaoNumerosFortran t = new ConversaoNumerosFortran();
int n = 36;
String numerosPonto[] = new String[n];
t.carregarNumeros(numerosPonto);
// Teste do uso de replace
String numerosVirgula[] = new String[n];
System.out.println("\n\n--- Trocando ponto por vírgula para simular uma entrada diferente");
for(int i=0;i<n; i++) {
numerosVirgula[i] = numerosPonto[i].replace('.', ',');
System.out.println("Antes: " + numerosPonto[i]);
System.out.println("Depois: " + numerosVirgula[i] + "\n");
}
System.out.println("\n--- Convertendo números com Double.parseDouble(). Separador decimal: '.'");
for(int i=0;i<n;i++) {
System.out.println("Antes: " + numerosPonto[i]);
System.out.println("Depois:" + Double.parseDouble(numerosPonto[i]) +"\n");
}
System.out.println("\n--- Convertendo números com Double.parseDouble(). Separador decimal: ','");
for(int i=0;i<n;i++) {
System.out.println("Antes: " + numerosVirgula[i]);
System.out.println("Depois:" + Double.parseDouble(numerosVirgula[i]) +"\n");
}
}
}
Saída:
--- Trocando ponto por vírgula para simular uma entrada diferente
Antes: .00000000
Depois: ,00000000
Antes: .1021E+05
Depois: ,1021E+05
Antes: -.2003E-01
Depois: -,2003E-01
Antes: .2114E+05
Depois: ,2114E+05
Antes: -.3197E-01
Depois: -,3197E-01
Antes: .3574E+08
Depois: ,3574E+08
Antes: .3891E+08
Depois: ,3891E+08
Antes: .6158
Depois: ,6158
Antes: .6420E+07
Depois: ,6420E+07
Antes: -.8783
Depois: -,8783
Antes: 0.000000E+00
Depois: 0,000000E+00
Antes: 0.9228
Depois: 0,9228
Antes: 1.760
Depois: 1,760
Antes: 10.000000
Depois: 10,000000
Antes: 110.000000
Depois: 110,000000
Antes: 112.7
Depois: 112,7
Antes: 1311.
Depois: 1311,
Antes: 14.14
Depois: 14,14
Antes: 2.056
Depois: 2,056
Antes: 210.00000
Depois: 210,00000
Antes: 239.0
Depois: 239,0
Antes: 2534.
Depois: 2534,
Antes: 271
Depois: 271
Antes: 33.9
Depois: 33,9
Antes: 353.0
Depois: 353,0
Antes: 37.4
Depois: 37,4
Antes: 39.353530
Depois: 39,353530
Antes: 40.2
Depois: 40,2
Antes: 41.800000
Depois: 41,800000
Antes: 42.3
Depois: 42,3
Antes: 46.07
Depois: 46,07
Antes: 5978.
Depois: 5978,
Antes: 6.670
Depois: 6,670
Antes: 68
Depois: 68
Antes: 7.000000
Depois: 7,000000
Antes: 7.428
Depois: 7,428
--- Convertendo números com Double.parseDouble(). Separador decimal: '.'
Antes: .00000000
Depois:0.0
Antes: .1021E+05
Depois:10210.0
Antes: -.2003E-01
Depois:-0.02003
Antes: .2114E+05
Depois:21140.0
Antes: -.3197E-01
Depois:-0.03197
Antes: .3574E+08
Depois:3.574E7
Antes: .3891E+08
Depois:3.891E7
Antes: .6158
Depois:0.6158
Antes: .6420E+07
Depois:6420000.0
Antes: -.8783
Depois:-0.8783
Antes: 0.000000E+00
Depois:0.0
Antes: 0.9228
Depois:0.9228
Antes: 1.760
Depois:1.76
Antes: 10.000000
Depois:10.0
Antes: 110.000000
Depois:110.0
Antes: 112.7
Depois:112.7
Antes: 1311.
Depois:1311.0
Antes: 14.14
Depois:14.14
Antes: 2.056
Depois:2.056
Antes: 210.00000
Depois:210.0
Antes: 239.0
Depois:239.0
Antes: 2534.
Depois:2534.0
Antes: 271
Depois:271.0
Antes: 33.9
Depois:33.9
Antes: 353.0
Depois:353.0
Antes: 37.4
Depois:37.4
Antes: 39.353530
Depois:39.35353
Antes: 40.2
Depois:40.2
Antes: 41.800000
Depois:41.8
Antes: 42.3
Depois:42.3
Antes: 46.07
Depois:46.07
Antes: 5978.
Depois:5978.0
Antes: 6.670
Depois:6.67
Antes: 68
Depois:68.0
Antes: 7.000000
Depois:7.0
Antes: 7.428
Depois:7.428
--- Convertendo números com Double.parseDouble(). Separador decimal: ','
Antes: ,00000000
Exception in thread "main" java.lang.NumberFormatException: For input string: ",00000000"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at ConversaoNumerosFortran.main(ConversaoNumerosFortran.java:70)
>