messageFormt() 多维数组出错
messageFormt() Error with multidimensional array
您好,我正在尝试 运行 我的程序,但我得到了一个非常奇怪的输出。该程序在它是单个数组时有效,但当我将其设为多维时,它会出错。请帮忙
public static void main(String[] args) throws IOException {
MessageFormat messageFormat = new MessageFormat("insert into {0} values ( ''{1}'', ''{2}'', ''{3}'', ''{4}'' )");
Object[][] data = { {"000", "111", "222","333","444","555"},
{"000", "123", "234","345","456","567"} };
System.out.println(messageFormat.format(data));
}
我的输出是:
run:
insert into [Ljava.lang.Object;@2a134eca values ( '[Ljava.lang.Object;@52934c3b', '{2}', '{3}', {4} )
BUILD SUCCESSFUL (total time: 0 seconds)
当你传递 data
时,你传递的是一个对象数组(也恰好是对象数组)。所以第一个是 data[0]
,第二个是 data[1]
,两者看起来都是 Object[]
大小 6.
解决这个问题:
messageFormat.format(data[0]);
请注意,您可能将其用于 SQL 插入语句。我强烈建议您改用 PreparedStatement
,因为这种方法很容易出错,如果您不小心,会导致 SQL 注入攻击!
MessageFormat
提供的格式非常适合打印一维数组。然而它不能直接打印二维数组。
您需要遍历二维数组 data
:
for(Object[] array : data) {
System.out.println(messageFormat.format(array));
}
您好,我正在尝试 运行 我的程序,但我得到了一个非常奇怪的输出。该程序在它是单个数组时有效,但当我将其设为多维时,它会出错。请帮忙
public static void main(String[] args) throws IOException {
MessageFormat messageFormat = new MessageFormat("insert into {0} values ( ''{1}'', ''{2}'', ''{3}'', ''{4}'' )");
Object[][] data = { {"000", "111", "222","333","444","555"},
{"000", "123", "234","345","456","567"} };
System.out.println(messageFormat.format(data));
}
我的输出是:
run:
insert into [Ljava.lang.Object;@2a134eca values ( '[Ljava.lang.Object;@52934c3b', '{2}', '{3}', {4} )
BUILD SUCCESSFUL (total time: 0 seconds)
当你传递 data
时,你传递的是一个对象数组(也恰好是对象数组)。所以第一个是 data[0]
,第二个是 data[1]
,两者看起来都是 Object[]
大小 6.
解决这个问题:
messageFormat.format(data[0]);
请注意,您可能将其用于 SQL 插入语句。我强烈建议您改用 PreparedStatement
,因为这种方法很容易出错,如果您不小心,会导致 SQL 注入攻击!
MessageFormat
提供的格式非常适合打印一维数组。然而它不能直接打印二维数组。
您需要遍历二维数组 data
:
for(Object[] array : data) {
System.out.println(messageFormat.format(array));
}