我试图将逗号分隔的字符串插入表格
这是我的灵魂:
String str = "83.320869,17.735924,83.322868,17.737820,83.323715,17.738564";
List<String> list = Arrays.asList(str.split(",")); // split-ing the string`
ArrayList<Double> ala = new ArrayList<Double>();
ArrayList<Double> alo = new ArrayList<Double>();
for (String i : list) {
double d = Double.parseDouble(i);
if (d > 82 & d < 84) {
ala.add(d);
} else {
alo.add(d);
}
}
for(int in =0 ; in<=2; in++){
String sql2 = "insert into routes values(" + ala.get(in) + "," + alo.get(in)+ ")";
stmt.executeUpdate(sql2);
}
终于得到了解决方案:)
答案 0 :(得分:0)
只要列表中有正确数量的逗号分隔项,就不会根据纬度/经度对值进行任何假设。我很想包括一张支票,以确保你不会在列表末尾以奇怪的经度结束。
public static void main(String[] args) {
String str = "83.320869,17.735924,83.322868,17.737820,83.323715,17.738564";
List<String> list = Arrays.asList(str.split(",")); // split-ing the string
Iterator<String> i = list.iterator();
double lat = 0, lon = 0;
while (i.hasNext()) {
lat = Double.parseDouble(i.next());
lon = Double.parseDouble(i.next());
System.out.println("lat=" + lat + ", long=" + lon);
}
}
答案 1 :(得分:-1)
这是由于不正确的分裂以识别阵列中纬线长度的位置。
更改代码以使用多个拆分占位符,例如';'
和','
。
示例:
// ; is to separate a pair of lat-longs
String str = "83.320869,17.735924;83.322868,17.737820;83.323715,17.738564";
List<String> latLongsList = Arrays.asList( str.split( ";" ) ); // split-ing the string
String sql2 = "insert into routes values( ?, ? )";
// use prepared statement to bind values with query
PreparedStatement pst = con.prepareStatement( sql2 );
for ( String latLongTogether : latLongsList ) {
// comma is to separate lat and long value
String lat_long[] = latLongTogether.split( "," );
double lat = Double.parseDouble( lat_long[ 0 ] );
double lon = Double.parseDouble( lat_long[ 1 ] );
if ( ( lat > 82 && lat < 84 ) && ( lon > 16 && lon < 18 ) ) {
pst.setDouble( 1, lat );
pst.setDouble( 2, lon );
pst.executeUpdate();
pst.clearParameters();
} // if
} // for