如何在另一个代码块中使用存储的字符串值

时间:2019-02-13 04:56:38

标签: java

我正在从数组列表中获取一些单词字符串,并且正在删除字符串中的某些单词,所以现在我已经打印了该单词,并且正在初始化为“客户端名称”,因此现在我想将该存储的内容插入数据库中,以便现在无法识别客户端名称,因为它位于不同的块中,因此如何获取数据

        String s;

        String keyword = arra.get(6);

        while ((s = br.readLine()) != null) {

            if (s.contains(keyword)) {
                s = s.replaceAll(keyword, " ");
                System.out.println(s);

                String Client_Name = s;

            }

        }

        try {
            Connection conn = PDFTOEXCEL.getConnection();
            PreparedStatement stmt = conn.prepareStatement("insert into client_info values(?)");

            stmt.setString(1, Client_Name);

            int k = stmt.executeUpdate();
            System.out.println("rows affected : " + k);

1 个答案:

答案 0 :(得分:0)

您看起来对Java编程非常陌生。如评论中所述,尝试阅读一些Java教程或阅读一些不错的Java书籍,以获得更好的理解和动手能力。 https://www.geeksforgeeks.org/variable-scope-in-java/详细介绍了作用域的工作原理。

现在解决您的问题,问题是您在if块中声明了client_name;因此,只要程序从if-block中出来,该变量的作用域就会终止,并且在它之后将无法访问。尝试在while和if块之外声明Client_Name(也使用适当的命名约定)(类似于String的声明;同样,按照逻辑,您似乎不需要s和Client_Name),您应该一切顺利。

示例代码-

        String clientName;

        String keyword = arra.get(6);

        while ((clientName = br.readLine()) != null) {

            if (clientName.contains(keyword)) {
                clientName = clientName.replaceAll(keyword, " ");
                System.out.println(clientName);    
            }

        }

        try {
            Connection conn = PDFTOEXCEL.getConnection();
            PreparedStatement stmt = conn.prepareStatement("insert into client_info values(?)");

            stmt.setString(1, clientName);

            int k = stmt.executeUpdate();
            System.out.println("rows affected : " + k);