如何将 Java 字符串拆分为数组并在没有分隔符的情况下打印结果数组内容
How to split a Java String into an Array and print the resulting Array contents without the Delimiter
我正在从 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());
我感到困惑的是它在 split
之后打印的字符串对象,第一个打印语句打印:
>-------------------->>> ACTIVE_DIRECTORY,
而第二个,分隔符拆分后:
>-------------------->>> [Ljava.lang.String;@387f6ec7
如何在 split
后不带逗号只打印 ACTIVE_DIECTORY
?
尝试替换:
System.out.println(">-------------------->>> " systems.toString());
和
System.out.println(">-------------------->>> " systems[0]);
由于 String[] systems 是一个对象数组,它会打印散列。
它打印出逗号,因为你附加了它。
只需打印出您的数组(系统变量):
Arrays.toString(systems);
一定要查看有关 Arrays 实用程序 class 方法 Arrays.toString(Object[] o) 的 oracle 文档。这将 'pretty-print' 数组的内容,而不是内存地址。
此外,最后一个元素每次都会在末尾有一个逗号,因为您要附加它。要解决这个问题,您可以这样做:
myString = myString.replaceAll(",", "");
或
myString[myString.length - 1] = myString[myString.length - 1].replaceAll(",", "");
取决于您是要删除 split(",");
之前还是之后的逗号。对最后一个元素执行此操作将从字符串中删除逗号。我推荐之后,因为之前这样做会导致你的分裂不起作用!
或者,您可以执行 replaceAll(",", " ");
,然后执行 split(" ");
,但您也可以在开头附加空格而不是逗号。
我正在从 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());
我感到困惑的是它在 split
之后打印的字符串对象,第一个打印语句打印:
>-------------------->>> ACTIVE_DIRECTORY,
而第二个,分隔符拆分后:
>-------------------->>> [Ljava.lang.String;@387f6ec7
如何在 split
后不带逗号只打印 ACTIVE_DIECTORY
?
尝试替换:
System.out.println(">-------------------->>> " systems.toString());
和
System.out.println(">-------------------->>> " systems[0]);
由于 String[] systems 是一个对象数组,它会打印散列。
它打印出逗号,因为你附加了它。 只需打印出您的数组(系统变量):
Arrays.toString(systems);
一定要查看有关 Arrays 实用程序 class 方法 Arrays.toString(Object[] o) 的 oracle 文档。这将 'pretty-print' 数组的内容,而不是内存地址。
此外,最后一个元素每次都会在末尾有一个逗号,因为您要附加它。要解决这个问题,您可以这样做:
myString = myString.replaceAll(",", "");
或
myString[myString.length - 1] = myString[myString.length - 1].replaceAll(",", "");
取决于您是要删除 split(",");
之前还是之后的逗号。对最后一个元素执行此操作将从字符串中删除逗号。我推荐之后,因为之前这样做会导致你的分裂不起作用!
或者,您可以执行 replaceAll(",", " ");
,然后执行 split(" ");
,但您也可以在开头附加空格而不是逗号。