質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

1061閲覧

Java多次元配列について

退会済みユーザー

退会済みユーザー

総合スコア0

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2022/06/15 07:34

前提、実現したいこと

画像①のように横並びに出力したいのですが,いろいろ試してみたものの画像②のように縦1列になるかエラーになってしまいました。
解決方法を教えていただきたいです。

出力結果画像

画像①
画像①
画像②
イメージ説明

当該のソースコード

Java

1コード 2char arr1[][][]= { 3  {{'■','■','■'},{'■','□','■'},{'■','□','■'},{'■','□','■'},{'■','■','■'}}, // 0 4  {{'□','□','■'},{'□','□','■'},{'□','□','■'},{'□','□','■'},{'□','□','■'}}, // 1 5  {{'■','■','■'},{'□','□','■'},{'■','■','■'},{'■','□','□'},{'■','■','■'}}, // 2 6  {{'■','■','■'},{'□','□','■'},{'■','■','■'},{'□','□','■'},{'■','■','■'}}, // 3 7  {{'■','□','■'},{'■','□','■'},{'■','■','■'},{'□','□','■'},{'□','□','■'}}, // 4 8  {{'■','■','■'},{'■','□','□'},{'■','■','■'},{'□','□','■'},{'■','■','■'}}, // 5 9  {{'■','□','□'},{'■','□','□'},{'■','■','■'},{'■','□','■'},{'■','■','■'}}, // 6 10  {{'■','■','■'},{'□','□','■'},{'□','□','■'},{'□','□','■'},{'□','□','■'}}, // 7 11  {{'■','■','■'},{'■','□','■'},{'■','■','■'},{'■','□','■'},{'■','■','■'}}, // 8 12  {{'■','■','■'},{'■','□','■'},{'■','■','■'},{'□','□','■'},{'□','□','■'}} // 9 13 }; 14 15System.out.print("数字を入力:"); 16String str =bin.readLine(); 17String[] strArray = new String[str.length()]; 18for(int i=0;i<str.length();i++) { 19 String str2 = String.valueOf(str.charAt(i)); 20 strArray[i]=str2; 21 String hoge = str2; 22 int num =Integer.parseInt(hoge); 23 24 for(int n=0;n<arr1[0].length;n++) { 25  for(int j=0;j<arr1[0][0].length;j++) { 26  System.out.print(arr1[num][n][j]); 27  } 28  System.out.print("□"); 29  System.out.println(); 30 } 31 System.out.println(); 32} 33 34

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2022/06/15 07:53 編集

直接表示しようとするからでしょう。 最終的な結果を表す二次元配列を作り、それを表示するのが簡単です。
guest

回答2

0

ご提示の出力の画像1をちゃんと理解しましょう。
1行目を描画するには、出力元の数字が全て必要です。
なので、手順は、以下になります。

1.入力文字列を分解して、数字配列を作る。
2.最初の描画行として、数字配列の最初の要素の描画データの1行目、セパレータ、数字配列の2番目の要素の描画データの1行目、セパレータ、...数字配列の最後の要素の描画データの1行目、セパレータ
3.2と同様に描画データの2行目以降を、データの描画行分繰り返す。

なお、ご提示のコードで言うと、描画データがarr1、セパレータが□、数字配列が存在しないので作成する必要がある変数になり、numの処理結果を配列に格納したものとなります。

投稿2022/06/15 09:30

編集2022/06/15 09:31
YT0014

総合スコア1708

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

文字列の配列にしたら処理が楽になりそうですね。
解決のヒントになれば幸いです。

java

1import java.util.*; 2 3public class Main { 4 public static void main(String[] args) throws Exception { 5 String digits[][] = { 6 {"■■■", "■□■", "■□■", "■□■", "■■■"}, // 0 7 {"□□■", "□□■", "□□■", "□□■", "□□■"}, // 1 8 {"■■■", "□□■", "■■■", "■□□", "■■■"}, // 2 9 {"■■■", "□□■", "■■■", "□□■", "■■■"}, // 3 10 {"■□■", "■□■", "■■■", "□□■", "□□■"}, // 4 11 {"■■■", "■□□", "■■■", "□□■", "■■■"}, // 5 12 {"■□□", "■□□", "■■■", "■□■", "■■■"}, // 6 13 {"■■■", "□□■", "□□■", "□□■", "□□■"}, // 7 14 {"■■■", "■□■", "■■■", "■□■", "■■■"}, // 8 15 {"■■■", "■□■", "■■■", "□□■", "□□■"}, // 9 16 }; 17 18 System.out.print("数字を入力:"); 19 String number = new Scanner(System.in).nextLine(); 20 String[] display = new String[digits[0].length]; 21 for (int line = 0; line < display.length; line++) { 22 display[line] = ""; 23 } 24 for (char digit: number.toCharArray()) { 25 for (int line = 0; line < display.length; line++) { 26 display[line] += digits[digit - '0'][line] + "□"; 27 } 28 } 29 for (String line: display) { 30 System.out.println(line); 31 } 32 } 33}

投稿2022/06/15 11:00

編集2022/06/15 11:15
shiracamus

総合スコア5406

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/06/15 12:14

回答ありがとうございます! やってみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問