我正在使用查询来获取Db中的所有值值我在Db中有8列,带有混合字符和数字。我需要分离字符和数字,当我使用下面的技术循环不重复7次它迭代值只有一次,我只得到一个值我附加图片以检查数据库中存在什么值
在jsp页面中,我使用以下逻辑从Db获取和分隔值
String str = "SELECT PATIENTINSURANCE.VISITSAUTHORIZED,PATIENT.PATIENTID FROM PATIENTINSURANCE INNER JOIN PATIENT ON PATIENTINSURANCE.PATIENTID=PATIENT.PATIENTID AND VISITSAUTHORIZED IS NOT NULL AND PATIENT.COMPANYID='"
+ companyId + "'";
DBAccess dbAccess = new DBAccess();
ArrayList<String> entries = new ArrayList<String>();
String a = "";
String number = "";
try {
List encList = dbAccess.selectAsList(str, 2);
if (encList.size() > 0) {
for (int i = 0; i < encList.size(); i++) {
System.out.println("the value of i is "+i);
List temp = (ArrayList) encList.get(i);
String visits = temp.get(0) != null ? ((String) temp
.get(0)) : "";
String patientNo = temp.get(1) != null ? ((String) temp
.get(1)) : "";
String letter = "";
System.out.println("the visits is "+visits);
int x = visits.length();
System.out.println("the size is "+x);
for (int j = 1; j <= x; j++) {
char c = visits.charAt(j);
if (Character.isDigit(c)) {
number = number + c;
%><strong><%=number%></strong><%
File file=new File("C:\\sample1.txt");
if(!file.exists()){
file.createNewFile();
}
FileWriter filewriter =new FileWriter(file.getAbsoluteFile());
BufferedWriter bufferedwirter =new BufferedWriter(filewriter);
bufferedwirter.write(number);
bufferedwirter.close();
System.out.println("Done succesfully");
}
else {
letter = letter + c; }
System.out.println("Visits are "+number);
} }
} else {
System.out.println("values of list is zero");
}
} catch (Exception e3) {
System.out.println();
}}%>
输出我只得到第一个值: WT45 我需要输出为: wt45wt45wt4588tyde66wt45wt45wt45 在文本文件中,我需要像这样打印45 45 45 88 66 45 45 45 但我得到了输出 45
答案 0 :(得分:0)
此代码存在一个问题,即您在for循环中使用FileWriter打开文件。将以下代码移出for循环:
File file=new File("C:\\sample1.txt");
if(!file.exists()){
file.createNewFile();
}
FileWriter filewriter =new FileWriter(file.getAbsoluteFile());
BufferedWriter bufferedwirter =new BufferedWriter(filewriter);
number = " ";
在for循环后关闭文件。