com数组e NullPointerException问题

时间:2019-07-10 19:34:04

标签: java

Olá,pessoal.Estou com um issuea nocódigoabaixo.Quando compilo ele medáo erro de NullPointerException,e diz que o problemaéna linha 87 onestestáo ultimo if do codigo

如果您要在卢加尔(Lougar)街上进行日常活动,请在卢加尔(Játentei debuggar),塔特尔(Játentei dar)印刷线路上进行分摊,以免发生不必要的事故


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

//arrumar o link do close e substituir pelo do site que exibe o close

public class SMAReader {

    public static void main(String[] args) throws IOException {

        URL oracle = new URL("https://www.alphavantage.co/query?function=SMA&symbol=MSFT&interval=30min&time_period=10&series_type=open&apikey=1DZO65QEO50KA0XG");
        URL close = new URL("https://www.alphavantage.co/query?function=SMA&symbol=MSFT&interval=30min&time_period=10&series_type=close&apikey=1DZO65QEO50KA0XG");
        int i = 0;
        Double[] mediaDouble = new Double[10000];//cria o array que vai armazenar as medias em double
        Double[] mediaDoubleClose = new Double[10000];
        int j = 0;

        try (
            /*BufferedReader, lê o arquivo com mais eficiência 
            InputStreamReader, ele converte bytes p caracteres q seria o fluxo"Stream" q entra
            openStream(), abre o acesso do fluxo pela url, ou seja, ele conecta e recupera a informação da página   
            */
            BufferedReader in = new BufferedReader(
            new InputStreamReader(oracle.openStream()))) {
            String inputLine;//do buffered
            String[] media = new String[10000]; //cria o array que vai armazenar as medias
            String[] mediaClose = new String[10000];//cria o array que vai armazenar as medias do close
            int indiceMedia = 0;//indice do media
            int indiceClose = 0; //indice do close


            while ((inputLine = in.readLine()) != null) {//enquanto a linha nao estiver vazia
                if (inputLine.contains("SMA")) {//se a linha contiver sma

                    for (i = 0; i < inputLine.length(); i++ ) {//percorre ela
                        if (inputLine.charAt(i) == ':') { //se na linha tbm houver :
                            for (j = i; j < inputLine.length()-1; j++) { //para j comecando no valor de i,j menor doq inputline-1
                                if (inputLine.substring(13, 16).equals("SMA")) { //se oq estiver nas posicoes de 13 a 16 corresponder a sema
                                    media[indiceMedia++] = inputLine.substring(20, inputLine.length()-1);//vai armazenar esse valor pro array
                                }
                            }
                            break;
                        }//fim if 2
                    }//fim for
                }//fim if1
            }//fim while


             while ((inputLine = in.readLine()) != null) {//enquanto houver linhas
                 System.out.println("teste");
                if (inputLine.contains("close")) {//se a linha contiver close
                    System.out.println("teste");
                    for (i = 0; i < inputLine.length(); i++ ) { //percorre o inputline ate -1 do tamanho dele
                        System.out.println("teste");
                        if (inputLine.charAt(i) == ':') { //se na linha houver :
                            for (j = i; j < inputLine.length()-1; j++) {//paa j = i,j menor doq o tamanho -1 do inputLine
                                if (inputLine.substring(13, 17).equals("close")) {//se oq estiver nas linhas 13 a 17 for igual a close
                                    mediaClose[indiceMedia++] = inputLine.substring(20, inputLine.length()-1);//cria um array que recebe esses valores
                                }//fim if
                            }//fim for
                            break;
                        }//fim if
                    }//fim for
                }//fim if
            }//fim while

                                        //System.out.println(mediaClose[i]);   


            //cria o array que vai armazenar as medias do close em double tambem 
            for (i = 0; i < indiceMedia; i++) { //percorre o array
                //System.out.println(indiceMedia);
                for(j = 0; j < indiceClose; j++){ //percorre o array
                    mediaDouble[i] = Double.parseDouble(media[i]); //e transforma em double


                    mediaDoubleClose[j] = Double.parseDouble(mediaClose[j]);
                }    
                    if(mediaDouble[i]< mediaDoubleClose[j])
                     System.out.println("Venda");
                    else
                       System.out.println("Compra"); 

            }   

        } 
    }
}

NullPointerException异常将重新分配给数组,并且质量数组由esse.Na realidade,eu queria que ele pegasse os dados dessa api,jogasse para os array,fizesse a media如果您的印刷品没有可比性,那么您可以从acordo com或com

0 个答案:

没有答案