我正在尝试从表中检索数据并将它们转换为double值以便对它们进行图形化。第0列填充时间值,格式为" 00:00"第1列用十进制值填充。
使用此代码,我似乎已正确检索数据并将第1列上的内容转换为double值,但不知道如何将带有时间值的String转换为double值以表示小时数:
int row = tableRadio.getRowCount();
for (int r = 0; r < row; r++) {
double r2 = Double.parseDouble( tableModel.getValueAt(r, 0).toString() );
double r3 = Double.parseDouble( tableModel.getValueAt(r, 1).toString() );
series.add(r2, r3);
}
我一直得到java.lang.NumberFormatException:对于输入字符串:&#34; 0:00&#34;当试图绘制这些数据时,根据我的理解,因为冒号不能等同于数值。但我怎么能说出来,&#34; 00:21&#34;而是显示为&#34; 0.21&#34;或者我可以用来绘制数据的东西?欢迎任何建议和例子。
答案 0 :(得分:2)
使用SimpleDateFormat
到 users = driver.find_elements_by_xpath("//a[@class='username' and not(strike)]")
时间列并创建时间序列图表,如图here所示。在结果parse()
上使用setDateFormatOverride()
格式化时间,如here所示。如有必要,您可以更改DateAxis
,如图所示here。
答案 1 :(得分:1)
所以我使用@Dawood ibn Kareem的方法开始工作。这是对我有用的最终代码:
//get number of rows
int row = tableRadio.getRowCount();
for (int r = 0; r < row; r++) {
//get column0's values and convert to String
String time = ( tableModel.getValueAt(r, 0).toString() );
//split time into two arrays
String[] timeSplit = time.split(":");
//convert arrays to doubles
double hours = Double.parseDouble(timeSplit[0]);
double min = Double.parseDouble(timeSplit[1]);
//represent column0 values by number of hours
double col0 = (min / 60) + hours;
//get column1's values and convert to double
double col1 = Double.parseDouble( tableModel.getValueAt(r, 1).toString() );
//add values to series
series.add(col0, col1);
}//end of for loop`
现在所有的表值都转换为双精度值,我已经让它们成功绘制图形。