Como transformar string em num double?

Dada uma String que contem inteiros alguem sabe como é que eu faço para pegar carctere por caractere desta string e jogando os caracteres num array mas transformando cada cada caractere em double?

[code]
char[] vet = new char[2];
vet[0] = 1;
vet[1] = 2;

Double.parseDouble(new String(vet));[/code]

oi, vc pode tentar algo assim

public static void main(String[] args) { String str = "123"; double[] d = new double[str.length()]; for (int i = 0; i < str.length(); i++) { String s = Character.toString(str.charAt(i)); d[i] = Double.parseDouble(s); } for (int i = 0; i < d.length; i++) { System.out.print(d[i]+" "); } }

talvez precise validar se o caractere é numero para isso

[quote=MnF]Double.parseDouble(String);

[/quote]

Isso não resolve meu problema pois pega toda a linha a transforma em um unico double! E o que eu preciso é que cada caractere desta string seje tratado isoladamente como um doible e que cada um desses double será jogado em posições diferentes do array! Estava implementando assim:

[code]class Gauss {

Scanner sistema;


public Gauss(Scanner sistema){
	this.sistema = sistema;
}	
	
public void leiaCoeficientes(){
	   	
	String linha = sistema.nextLine();
	int n = linha.length();
	double [][]matriz = new double[n][n-1];
    jogueValoresNaMtriz(matriz,linha);	

}

int j = 0;

public void jogueValoresNaMtriz(double [][] matriz,String linha){
	
	for(int k = 0; k<linha.length(); k++){
		matriz[k][j] = Double.parseDouble(linha.valueOf(j));
	}
	for(int k = 0; k<linha.length(); k++){
	System.out.print(" "+matriz[k][j]);
	}
	
}

}[/code]

A primeira String linha comtem isto: “123456”
e eu quero que ele imprima assim: 1.0 2.0 3.0 4.0 5.0 6.0 sendo que estes numeros deixaram de ser string e passaram a ser double e cada um esta numa posição do array
Mas meu codigo esta imprimindo isto >>> 0.0 0.0 0.0 0.0 0.0 0.0
???
E o que tu me disse imprime isto >>>> 123456.0 123456.0 123456.0 123456.0 123456.0 123456.0
Sabes o que devo fazer?!!!

acabei lendo meio rápido e fiz do modo que pensei que era… mas utiliza o código do andré que acho que te ajuda.

Aqui, o seu estava quase certo,

import java.util.Scanner;

class Gauss {
	
	private Scanner sistema;
   	
    public Gauss( Scanner sistema ) {
    	this.sistema = sistema;
    }	
    	
    public void leiaCoeficientes() {
    	
    	String linha = sistema.nextLine();
    	int n = linha.length();
    	double [][]matriz = new double[n][n-1];
        jogueValoresNaMtriz( matriz , linha );	
        
    }
    
    public void jogueValoresNaMtriz( double [][] matriz , String linha ) {
    	
    	final int j = 0;
    	
    	for ( int k = 0; k < linha.length(); k++ ) {
    		matriz[k][j] = Double.valueOf( String.valueOf(linha.charAt(k)) );
    	}
    	
    	for ( int k = 0; k < linha.length(); k++ ) {
    		System.out.print( matriz[k][j] + " " );
    	}
    	
    }
    
    public static void main(String[] args) {
		
    	Gauss g = new Gauss( new Scanner(System.in) );
    	g.leiaCoeficientes();
    	
	}
}

Fiz como o andre disse mas ainda imprime 0.0 0.0 0.0 0.0 0.0 0.0

[code] int j = 0;
int k = 0;

public void jogueValoresNaMtriz(double [][] matriz,String linha){
	//System.out.print(linha);
	for(; k<n; k++){
		for(;j<n1;j++){
		
		String s = Character.toString(linha.charAt(j)); 
		matriz[k][j] = Double.parseDouble(s);
		}	
			
	}
	j=0;
	for(int k = 0; k<linha.length(); k++){
	System.out.print(" "+matriz[k][j]);
	}
	
}[/code]

Nossa, nao consigo achar o erro!

Olha o meu post acima…

Fazendo modificações FINALMENTE consegui fazer com que ele jogue na matriz os coeficientes. Mas o novo PROBLEMA agora é que ele esta jogando na matriz bidimensional duas vezes a primeira linha do arquivo txt. Pelo que entendi o metodo nextLine() retorna uma string da atual linha que o scanner se encontra e pula p proxima!

Veja o novo codigo:


    class Gauss {  
          
        Scanner sistema;  
       int n;   
       int n1;  
       double [][]matriz;  
         
        public Gauss(Scanner sistema){  
            this.sistema = sistema;  
       }     
             
       public void leiaCoeficientes(){  
           int controle = 0;   
           String linha = sistema.nextLine();  
           System.out.println("------------------------ " +linha);  
           n = linha.length()-1;  
           n1 = n+1;  
           matriz = new double[n][n1];  
           while(controle<n) {  
             
           jogueValoresNaMtriz(matriz,linha);  
           controle++;  
           linha = sistema.nextLine();  
           System.out.println("------------------------ "+ linha);  
             
           }  
     
         int k = 0;  
         
       public void jogueValoresNaMtriz(double [][] matriz,String linha){  
           //System.out.println(linha);  
           //for(int k=0; k<n; k++){  
               System.out.println();  
               for(int j = 0;j<n1;j++){   
                 
               String s = Character.toString(linha.charAt(j));   
               matriz[k][j] = Double.parseDouble(s);  
               System.out.println("val da matriz em kj "+matriz[k][j]);  
               }  
               k++;  
   }  
   }  [/code]



Note que estou usando System.out.println("------------------------ "+ linha); para ver a linha que o scanner esta pegando e em jogueValoresNaMtriz usando System.out.println("val da matriz em kj "+matriz[k][j]); para conferir se os elementos estão sendo transformados em doubles e guardados um por um na matriz.

O arquivo txt contem estes dados:

123456
789221
432222
896400
907888

e o scanner esta pegando duas vezes a linha um e por isso acaba não pegando a ultima linha!

Aqui segue a classe principal caso você tente testar na sua máquina:

[code]import java.io.File;
import java.util.Scanner;
import java.io.FileNotFoundException;


class Principal {
	
	public static void main(String [] a ) throws FileNotFoundException {
		
		File arquivo = new File("C:/Users/Jhonatan/Desktop/jhonatan/sistemas/sis.txt");
        Scanner sistema = new Scanner(arquivo);
		
		Gauss gaus = new Gauss(sistema);
	    gaus.leiaCoeficientes();