我有 2 个 2D 数组,一个 int 和一个 String,我希望它们一个挨一个出现,因为它们的行数相同。有没有办法做到这一点?我考虑过连接,但这要求它们是相同类型的数组,所以在这种情况下,有没有办法让我的 int 数组成为 String 数组?
4 回答
String
如果你想要一个可以同时容纳s 和s的数组int
,你基本上有两种选择:
将它们都视为对象,如此有效
Object[][] concatArray
。自动装箱会将您的整数转换为整数。将它们都视为字符串(使用 String.valueOf(int) 和 Integer.parseInt(String))。
我不知道事实,但会猜测自动装箱是将整数转换为字符串并返回的成本较低的操作。
此外,您始终可以使用运算符找出数组中单元格的值类型instanceof
;如果将值转换为字符串,您实际上需要解析一个值以查明它是否只是一点文本或数字的文本表示。
这两个考虑因素——一个是猜测,另一个可能与你的情况无关——将支持使用上面的选项 1。
我听到潜伏在背景中的维度诅咒,也就是说——我想到的第一个答案是:
final List<int,String> list = new List<int,String>();
然后查看 op 的声明,我们看到两个 [][] 提出了排序问题。看看两个好的回复,我们可以做 Integer.toString( int ); 要获得满足 op 问题定义的连接,那么排序是重要的还是平面列表以及(再次)如何处理第二个数组?它是一个元组吗?如果是这样,如何“保存”行中的数据......然后我们可以这样做List<Pair<Integer,String>> or List<Pair<String,String>>
,这对我来说似乎是规范的解决方案。
只需在连接时将整数转换为字符串。最终结果将是一个字符串类型的二维数组。
要将 int 连接到 String,您可以使用
int myInt = 5;
String newString = myInt + "";
它很脏,但它是常用的,因此可以识别,并且有效。
我可以看到有两种方法可以做到这一点:
- 您可以创建一个包含字符串和整数的自定义数据对象。如果这两个项目属于一起,这将是最好的方法。它还使比较行更容易。
- 您可以创建一个 4D 对象数组并将所有值像这样放在一起。我不推荐它,但它确实解决了问题,