int と String の 2 つの 2D 配列があり、行数が同じであるため、それらを並べて表示したいと考えています。これを行う方法はありますか?連結することを考えましたが、それには同じ型の配列である必要があるため、その場合、int 配列を String 配列にする方法はありますか?
4 に答える
String
sとsの両方を保持できる配列が必要な場合はint
、基本的に2つの選択肢があります。
両方をオブジェクトとして扱うので、効果的
Object[][] concatArray
です。オートボクシングはあなたのintを整数に変換します。それらを両方とも文字列として扱います(String.valueOf(int)とInteger.parseInt(String)を使用)。
事実はわかりませんが、オートボクシングはintを文字列に変換して元に戻すよりも安価な操作だと思います。
instanceof
さらに、演算子を使用すると、配列内のセルの値の型をいつでも確認できます。値が文字列に変換される場合、実際には値を解析して、その値がほんの少しのテキストなのか、数値のテキスト表現なのかを確認する必要があります。
これらの2つの考慮事項(1つは推測であり、もう1つはあなたの場合には無関係である可能性があります)は、上記のオプション1の使用をサポートします。
連結するときにintをStringにキャストするだけです。最終結果は、String 型の 2D 配列になります。
int を String に連結するには、単に使用できます
int myInt = 5;
String newString = myInt + "";
汚れていますが、一般的に実践されているため、認識可能であり、機能します。
私が見ることができるこれを行うには2つの方法があります:
- 文字列と整数を保持するカスタム データ オブジェクトを作成できます。2 つのアイテムが一緒に属する場合、これが最善の方法です。また、行の比較も容易になります。
- オブジェクトの 4D 配列を作成し、すべての値をこのようにまとめることができます。お勧めはしませんが、問題は解決します。
背景に潜んでいる次元の呪いが聞こえます。つまり、頭に浮かぶ最初の答えは次のとおりです。
final List<int,String> list = new List<int,String>();
次に、op のステートメントを確認すると、2 つの [][] が表示され、順序付けの問題が生じます。すでに 2 つの適切な応答を見ると、Integer.toString( int ); を実行できます。opの問題定義を満たす連結を取得するには、順序付けが重要かフラットリストか、そして(再び)2番目の配列をどうするかです。タプルですか?もしそうなら、行のデータを「保持」する方法...その後List<Pair<Integer,String>> or List<Pair<String,String>>
、私には標準的な解決策のように思えます。