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