Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Java字符串拆分为数组,并在不使用分隔符的情况下打印生成的数组内容_Java_Arrays_String_Split_Stringbuilder - Fatal编程技术网

如何将Java字符串拆分为数组,并在不使用分隔符的情况下打印生成的数组内容

如何将Java字符串拆分为数组,并在不使用分隔符的情况下打印生成的数组内容,java,arrays,string,split,stringbuilder,Java,Arrays,String,Split,Stringbuilder,我正在从SQL查询结果集生成一个StringBuilder: StringBuilder sb = new StringBuilder(); PreparedStatement ps1 = null; String[] systems = null; try { ps1 = c.prepareStatement(systemNames); ResultSet rs = ps1.executeQuery(); while (rs.next()) { sb.

我正在从SQL查询结果集生成一个
StringBuilder

StringBuilder sb = new StringBuilder();
PreparedStatement ps1 = null;
String[] systems = null;

try {
    ps1 = c.prepareStatement(systemNames);
    ResultSet rs = ps1.executeQuery();
    while (rs.next()) {
        sb.append(rs.getString("system_name") + ",");
        System.out.println(">-------------------->>> " + sb.toString());
    }
    systems = sb.toString().split(",");
} catch (SQLException e) {
    log.error(e.toString(), e);
} finally {
    if (ps1 != null) {
        try {
            ps1.close();
        } catch (Exception e) {
        }
    }
    if (c != null) {
        try {
            c.close();
        } catch (Exception e) {
        }
    }
}
System.out.println(">-------------------->>> " + systems.toString());
我感到困惑的是它在
拆分后打印的字符串对象,第一个print语句打印:

>-------------------->>>活动目录

而第二次,在delimeter拆分后:

>-------------------->>>[Ljava.lang.String;@387f6ec7

如何仅打印
活动目录
拆分后不使用逗号?

尝试替换:

System.out.println(">-------------------->>> " systems.toString());

由于String[]systems是一个对象数组,因此它会打印哈希值。

尝试替换:

System.out.println(">-------------------->>> " systems.toString());


因为String[]systems是一个对象数组,所以它打印哈希。

它打印逗号,因为您附加了逗号。 只需打印出您的阵列(系统变量):


它打印出逗号,因为您附加了它。 只需打印出您的阵列(系统变量):


请务必查看有关Arrays实用程序类方法的oracle文档。这将“漂亮地打印”数组的内容,而不是内存地址

此外,最后一个元素每次结尾都会有一个逗号,因为您要附加它。要解决此问题,可以执行以下操作:

myString = myString.replaceAll(",", "");

根据您是要在
拆分(“,”)之前还是之后删除逗号;
在最后一个元素上执行此操作将从字符串中删除逗号。我建议在之后删除,因为在之前执行此操作将使拆分无法工作


或者,您可以执行
replaceAll(“,”,”);
然后执行
split(“”)
但是你最好先加空格,而不是逗号。

一定要查看oracle文档中关于Arrays实用程序类方法的内容。这将“漂亮地打印”数组的内容,而不是内存地址

此外,最后一个元素每次结尾都会有一个逗号,因为您要附加它。要解决此问题,可以执行以下操作:

myString = myString.replaceAll(",", "");

根据您是要在
拆分(“,”)之前还是之后删除逗号;
在最后一个元素上执行此操作将从字符串中删除逗号。我建议在之后删除,因为在之前执行此操作将使拆分无法工作


或者,您可以执行一个
replaceAll(“,”,”);
然后执行
split(“”;
),但您也可以先添加空格而不是逗号。

在调用
sb.toString()时去掉
+”,“
systems
是一个数组,它是一个对象。您是否关心打印逗号,或打印内存地址,或两者兼而有之?调用
sb.toString()时,请取出
+“,”
系统
是一个数组,它是一个对象。您是否关心打印逗号,或打印内存地址,或两者兼而有之?@WhyCry,您为什么这么认为?误读了这个问题,是的,逗号仍然存在course@RoelStrolenberg为什么你认为逗号仍然存在?
System.out.println(“>---------------->>”systems.toString()
是OPs代码中的最后一条语句。如果
try
块失败,您将获得
NullPointerException
,或者您将获得
systems
数组的第一个元素,不带分隔符。我的意思是逗号将位于第一个println中。最后一个println是始终执行并将打印hashc的元素ode,除非从字符串数组转换为实际字符串。@WhyCry,为什么你这么认为?误读了这个问题,是的,逗号仍然存在course@RoelStrolenberg为什么您认为逗号仍然存在?
System.out.println(“>-->”systems.toString())
是OPs代码中的最后一条语句。如果
try
块失败,您将获得
NullPointerException
,或者您将获得
systems
数组的第一个元素,不带分隔符。我的意思是逗号将位于第一个println中。最后一个println是始终执行并将打印hashc的元素ode,除非从字符串数组转换为实际字符串。我之所以添加逗号,是因为它可能是一个具有多个系统名称的大型字符串数组,我只需要此实例中的第一个系统名称。我之所以添加逗号,是因为它可能是一个具有多个系统名称的大型字符串数组,我只需要f此实例中的irst系统名称
myString[myString.length - 1] = myString[myString.length - 1].replaceAll(",", "");