我想分隔字符和数字,并将这些值写入文本文件

时间:2014-02-20 09:55:22

标签: java oracle jsp

我正在使用查询来获取Db中的所有值值我在Db中有8列,带有混合字符和数字。我需要分离字符和数字,当我使用下面的技术循环不重复7次它迭代值只有一次,我只得到一个值我附加图片以检查数据库中存在什么值

enter image description here

在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

1 个答案:

答案 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循环后关闭文件。