首页 > 解决方案 > System.out.println 添加特定变量时打印部分字符串

问题描述

number当我传递其中命名的特定变量时,System.out.println()会打印部分字符串。

change_status(senttime, data[0]);

private void change_status(String timestamp, String number){
   String query = null;
   query = "update table_abc set state='2' where msg like '%"+number+"%' and sent_time > '"+timestamp+"' ";
   System.out.println("query: " + query);
}

System.out.println 的输出如下所示......

当 data[0] 的值为“Text”时,输出为update table_abc set state='2' where msg like 'Text' and sent_time > '2021-07-08 23:14:15'

当 data[0] 的值为“3320112345677”时,输出为%' and sent_time > '2021-07-08 23:14:15'

当 data[0] 的值为“1231234567”时,输出为%' and sent_time > '2021-07-08 23:14:15'

然而

我需要传递值为“1231234567”的 data[0] 变量或长度为 10 到 12 个字符的任何其他字符串整数值。

问题

当数据 [0] 具有字符串整数时 System.out.println() 不打印完整字符串(sql 查询)?

更新

正如@Esterlinkof 所说,上述代码段中没有问题。我做了更多的调试并且知道问题是当我将该字符串拆分为数组然后尝试从数组中打印它时。

String text = "1231234567
Pakistan
2021-07-08 23:14:15
11223344556677";

String[] data = null;
data = text.slipt("\n");
query = "update table_abc set state='2' where msg like '%"+data[0]+"%' and sent_time > '"+data[2]+"' ";
System.out.println("query: " + query);

输出

%' and sent_time > '2021-07-08 23:14:15'

而 data[0] 是有价值的"1231234567",而 data[2] 是"2021-07-08 23:14:15"

标签: java

解决方案


我测试了以下代码,您可以在结果中看到它的工作原理。您的问题与打印无关。您能否提供更多背景信息?

import java.time.LocalDateTime;

public class Main{
        public static void main(String [] args){
                String[] data = {"Text", "3320112345677", "1231234567"};
                change_status(LocalDateTime.now().toString(), data[0]);
                change_status(LocalDateTime.now().toString(), data[1]);
                change_status(LocalDateTime.now().toString(), data[2]);
        }
        private static void change_status(String timestamp, String number){
                String query = null;
                query = "update table_abc set state='2' where msg like '%"+number+"%' and sent_time > '"+timestamp+"' ";
                System.out.println("query: " + query);
        }
}

结果:

query: update table_abc set state='2' where msg like '%Text%' and sent_time > '2021-07-12T11:47:11.448650'
query: update table_abc set state='2' where msg like '%3320112345677%' and sent_time > '2021-07-12T11:47:11.495243'
query: update table_abc set state='2' where msg like '%1231234567%' and sent_time > '2021-07-12T11:47:11.495365'

推荐阅读