我正在尝试从雅虎的股票API中获取数据并将其打印出来供我的班级使用。现在,我创建了一个
的URLString stockURL = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22" + ticker + "%22)&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
其中自动收报机是用户输入的字符串(例如AAPL,GOOGL,YHOO等)。
我将URL传递给我的扫描仪,如下所示:
Scanner webReader = null;
Scanner bufferReader = null;
try {
URL url = new URL(stockURL);
webReader = new Scanner(url.openStream());
bufferReader = new Scanner(url.openStream());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
并保存这样的信息
String name = "";
String highLow = "";
boolean yes = true;
while(bufferReader.nextLine()!=null){
String holder = webReader.nextLine();
if(holder.startsWith("<Name>")){
name = holder.replaceAll("<Name>", "");
name.replaceAll("</Name>", "");
} else if(holder.startsWith("<YearRange>")){
highLow = holder.replaceAll("YearRange","");
highLow.replaceAll("</YearRange>","");
highLow.replaceAll("- ", "and a year high of:");
break;
} else if(holder.startsWith("</Query>")){
yes = false;
break;
}
}
然而我在我的同时得到了一个NoSuchElementException(bufferReader.nextLine!= null)。
为什么会这样?
答案 0 :(得分:0)
我修好了!
只需替换while循环中的条件。
while(webReader.hasNext()){...}