2009-11-03 86 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。