当前位置: 代码迷 >> java >> 如何在另一个代码块中使用存储的字符串值
  详细解决方案

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

热度:41   发布时间:2023-07-27 09:38:48.0

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

        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);

您看起来对 Java 编程很陌生。 正如评论中提到的,尝试阅读一些 Java 教程或阅读一些好的 Java 书籍,以获得更好的理解和实践。 详细说明了作用域的工作原理。

现在对于您的问题,问题是您在 if 块中声明了 client_name; 所以这个变量的作用域在程序从 if 块中出来时就结束了,并且在它之后将无法访问。 尝试在 while 和 if 块之外声明 Client_Name(也使用适当的命名约定)(类似于 String s 声明;而且根据您的逻辑,您似乎不需要 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);
  相关解决方案