2009-11-03 68 views
0

我有2个二维数组,一个int和一个字符串,我希望它们出现一个接一个,因为它们具有相同的行数。有没有办法做到这一点?我想过连接,但这要求它们是相同类型的数组,所以在那种情况下,有没有办法让我的int数组成为一个String数组?在Java中连接2个2D数组?

回答

0

只需在连接时将字符串转换为字符串。最终结果将是String类型的二维数组。

连接int一个字符串,你可以使用

int myInt = 5; 
String newString = myInt + ""; 

这是肮脏的,但它的普遍实行,从而识别,和它的作品。

+0

String newString = String.valueOf(myInt); http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String。html#valueOf(int) – alphazero 2009-11-03 03:21:34

+0

这也适用,但它更多的字符:P。 – 2009-11-03 03:33:10

0

有两种方法可以做到这一点,我可以看到:

  1. 您可以创建包含字符串和整数自定义的数据对象。如果这两个项目属于一起,这将是最好的方式。这也使比较行更容易。
  2. 您可以创建一个4D对象数组,并像这样将所有值放在一起。我不会推荐它,但它确实解决问题,
0

我听到维潜伏在后台的诅咒,那说的 - 第一个答案想到的是:

final List<int,String> list = new List<int,String>(); 

然后回顾op的陈述,我们看到两个[] []提出了排序的问题。看看两个很好的答复,我们可以做Integer.toString(int);为了得到满足op的问题定义的串联,那么是排序是重要还是平坦列表,以及(再次)如何处理第二个数组?它是一个元组吗?如果是这样,如何“保留”该行中的数据...我们可以做List<Pair<Integer,String>> or List<Pair<String,String>>,这似乎是我的典型解决方案。

1

如果你想,可以容纳两个String S和int秒的数组,你基本上有两种选择:

  1. 对待他们既作为对象,所以 有效Object[][] concatArray。自动装箱将 将您的整数转换为整数。

  2. 将它们都视为字符串(使用 String.valueOf(int)和 Integer.parseInt(String))。

我不知道一个事实,但会猜测autoboxing是一个更便宜的操作,将ints转换为string和back。

此外,您可以始终使用instanceof运算符找出数组中单元格的值类型;如果将值转换为字符串,则实际上需要解析值以查明它是否只是一些文本或数字的文本表示。

这两个考虑 - 一个猜测,其他可能与你的情况无关 - 将支持使用上面的选项1。