emm,如图,本来我的想法是,视select 的对象为一个整体,所以直接放了str1在后面,但写到下面突然发现,String @=rs.getString(i)中的@是要特定写出来…
现在我的想法是,通过集合遍历最开始输入的那个较长且含逗号的字符串,来代替@,请问该怎么做,谢谢了…|・ω・`)
教你一个优雅的实现方式,把下面这段代码替换一下
while(rs.next) {
for(int i=0; i<selectFileds.length; ++i) {
selectFiledValues[i] = rs.getString(i+1);
}
}
替换成如下代码
String[] selectFileds = str1.split(",");
String[] selectFiledValues = new String[selectFileds.length];
while(rs.next) {
for(int i=0; i<selectFileds.length; ++i) {
selectFiledValues[i] = rs.getString(i+1);
}
}
String outputText = "";
switch(selectFiledValues.length) {
case 4:
outputText = ",份数:" + selectFiledValues[3] + "%n";
case 3:
outputText = ",期号:" + selectFiledValues[2] + outputText;
case 2:
outputText = ",报刊代号:" + selectFiledValues[1] + outputText;
case 1:
outputText = "订户号:" + selectFiledValues[0] + outputText;
}
System.out.println(outputText);
}
当str1输入订户号、报刊代号、期号、份数4个字段时
运行结果如下
订户号:1,报刊代号:2,期号:3,份数:4%n
当str1输入订户号、报刊代号、期号3个字段时
运行结果如下
订户号:1,报刊代号:2,期号:3
当str1只输入订户号时
运行结果如下
订户号:1
如有帮助,请采纳,十分感谢!
1.输入有逗号的字符串,如:a,b,c
2.分割字符串,得到字符数组,String[]arr=str.split(",");
3.将数组转为集合,Arrays.toList(arr),得到集合
以上是示例,具体可根据实际数据在做细化
这并不需要将逗号转为集合啊。
数组越界异常了,因为你的sql只查询了str1输入的字段,也就是CNO一个字段,查询后,rs 中的每一行记录中只有一个值,所以最多是rs.getString(1)
你要查询多个字段的话,str1就输入多个字段,或者直接输入*查询所有。
String str = "a,b,c";
List result = Arrays.asList(str.split(","));
这一个你使用 String.split拆分字符串即可
例:Java String.split()方法具有什么功能呢? 把里面的点号分隔符转换为逗号分隔符即可