Есть программа, которой подается на вход 2 натуральных числа: размеры таблицы (а*b) и строка вида ADD (число) (число). Оба числа являются координатами ячейки в таблице. Программа должна прибавить 1 в ячейку с такими координатами. У меня программа может обрабатывать только 1 строку, а как сделать так, чтоб можно было ввести сразу несколько запросов?
public class Test3 {
static Scanner scanner = new Scanner (System.in);
static String str = scanner.nextLine();
static int a = scanner.nextInt();
static int b = scanner.nextInt();
static int[][] table = new int[a][b];
public static void main (String args[]) {
res(getOp(str));
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
System.out.print(" " + table[i][j] + " ");
}
System.out.println();
}
}
public static String getOp(String str) {
String [] ops = str.split(" ");
return ops[0];
}
public static int getX(String str) {
String [] ops = str.split(" ");
return Integer.parseInt(ops[1]);
}
public static int getY(String str) {
String [] ops = str.split(" ");
return Integer.parseInt(ops[2]);
}
public static void res(String op) {
switch(op) {
case "ADD":
table [getX(str)-1][getY(str)-1]+=1;
break;
}
}
Старайтесь хоть немного избавляться от статики. Помните о инкапсуляции. Разбивайте методы осмыслено, а не лишь бы раздробить на части. К примеру, вы создали 3 метода, которые делят строку сплитом(каждый), два из них парсит стринг в инт? Это дублирование кода. Старайтесь быстрее выйти за пределы класса и метода мейн. А еще свитч с одним кейсом выглядит очень странно...
import java.util.Scanner;
class Test3 {
public static void main(String args[]) {
while (true) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
int a = scanner.nextInt();
int b = scanner.nextInt();
new Test4(a, b).start(str);
}
}
}
class Test4 {
private final int[][] table;
public Test4(int a, int b) {
this.table = new int[a][b];
}
public void start(String str) {
res(str, table);
printTable(table);
}
private void res(String str, int[][] table) {
final String[] split = str.split(" ");
switch (split[0]) {
case "ADD":
table[stringToInteger(split[1]) - 1][stringToInteger(split[2]) - 1] += 1;
break;
}
}
private Integer stringToInteger(String s) {
return Integer.valueOf(s);
}
private void printTable(int[][] table) {
for (int i = 0; i < table.length; i++) {
for (int j = 0; j < table[i].length; j++) {
System.out.print(" " + table[i][j] + " ");
}
System.out.println();
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть отдельный файл с картинками под названием src, в котором файл img и там картинкиФайл Src я назначил права Resources Root
Почему во всех примерах, я вижу вот такое: Integer a = new Integer(242); - хотя этот вариант деприкейтед, в идее прям зачеркивает этот кодПочему никто не показывает...
Как в зависимости от выбранной опции тега select, содержащей data-id, привязать его к кнопке, те при выборе 1, кнопка получала data-id = 1 и тд
подскажите пожалуйста при запуске данного кода мне выдаётся ошибка