Necesito crear un código que primero obtenga una matriz 2d y luego la imprima. para esto, construí un menú con una caja de interruptores.
cuando el usuario hace clic en 0, el usuario ingresa el tamaño de la matriz (el tamaño siempre es n*n), y luego el usuario ingresa los valores. luego necesito crear una función que use esta información para construir una matriz de caracteres (los valores son base hexadecimal 0-F)
cuando el usuario hace clic en 1, el código debe imprimir la misma matriz 2d. Me cuesta entender cómo puedo mover la matriz del caso 0.
importar java.util.Scanner;
asignación de clase pública3 {
static Scanner reader = new Scanner (System.in); public static void main(String[] args) { int checker=1; int user_selction; do { user_selction=Menu(); switch(user_selction) { case 0: Menu_0(user_selction); break; case 1: break; case 2: break; case 3: break; case 4: checker=GoodBye(checker); break; default: break; } }while(checker==1); } public static int Menu () { int menu_num; System.out.println("~ Photo Analyzed ~"); System.out.println("0. Load Photo"); System.out.println("1. Print Photo"); System.out.println("2. Circle Check"); System.out.println("3. Random Check"); System.out.println("4. Exit"); System.out.println("Please select an option>"); menu_num=reader.nextInt(); if(menu_num>4||menu_num<0) { System.out.println("Invalid input"); } return menu_num; } public static int GoodBye(int GB) { GB=0; System.out.println("Goodbye!"); return GB; } public static int Menu_0 (int a) { int Ps; System.out.println("Please insert the photo size>"); Ps=reader.nextInt(); if(Ps<0||Ps>12) { System.out.println("Invalid Photo Input!"); return a; } System.out.println("Please insert the photo value>"); String strPhoto; do { strPhoto = reader.nextLine(); } while(strPhoto.length() == 0); if(strPhoto.length()!=Ps*Ps) { System.out.println("Invalid Photo Input!"); return a; } for(int i=0;i<Ps*Ps;i++) { if(strPhoto.charAt(i)<'0'||strPhoto.charAt(i)>'F') { System.out.println("Invalid Photo Input!"); return a; } } return a; }Esto es un ejemplo
import java.util.Scanner; public class Assignment3 { static Scanner reader = new Scanner (System.in); public static void main(String[] args) { int checker=1; int user_selction; char [][]array = null; do { user_selction=Menu(); switch(user_selction) { case 0: array = Menu_0(); break; case 1: print_array(array); break; case 2: break; case 3: break; case 4: checker=GoodBye(checker); break; default: break; } }while(checker==1); } public static int Menu () { int menu_num; System.out.println("~ Photo Analyzed ~"); System.out.println("0. Load Photo"); System.out.println("1. Print Photo"); System.out.println("2. Circle Check"); System.out.println("3. Random Check"); System.out.println("4. Exit"); System.out.println("Please select an option>"); menu_num=reader.nextInt(); if(menu_num>4||menu_num<0) { System.out.println("Invalid input"); } return menu_num; } public static int GoodBye(int GB) { GB=0; System.out.println("Goodbye!"); return GB; } public static char[][] Menu_0 () { int Ps; System.out.println("Please insert the photo size>"); Ps=reader.nextInt(); if(Ps<0||Ps>12) { System.out.println("Invalid Photo Input!"); return null; } System.out.println("Please insert the photo value>"); char [][]array = new char[Ps][Ps]; for(int i=0;i<Ps;i++) { for (int j = 0 ; j < Ps ; j++) { char c = reader.next().charAt(0); if(c<'0'||c>'F') { System.out.println("Invalid Photo Input!"); return null; } else { array[i][j] = c; } } } return array; } public static void print_array(char [][]array){ for (int i = 0 ; i < array[0].length ; i++) { for (int j = 0 ; j < array[0].length ; j++) { System.out.print(array[i][j] + " "); } System.out.println(); } } }Utilice el escáner de esta manera:
Scanner sc = new Scanner(System.in); System.out.println("Select 1 to input array size or 2 to do sth"); int option = sc.nextInt(); switch(option) { case 1 : Scanner sc = new Scanner(System.in); System.out.println("Enter array size: "); int size = sc.nextInt() int[] array = new array[size*size]; break; case 2 : something; break; default: System.out.println("No such option "); break; }