Как искать строку в массиве массивов в java? [Дубликат]

setInterval, как было предложено SLaks, было именно тем, что мне нужно для создания моего таймера. (Спасибо mate!)

Используя setInterval и эту замечательную запись в блоге Я закончил создание следующей функции для отображения таймера внутри моего div box. Я надеюсь, что это поможет кому-то еще с похожими требованиями!

  function get_elapsed_time_string (total_seconds) {function pretty_time_string (num) {return (num & lt; 10? "0": "") + num;  } var hours = Math.floor (total_seconds / 3600);  total_seconds = total_seconds% 3600;  var minutes = Math.floor (total_seconds / 60);  total_seconds = total_seconds% 60;  var seconds = Math.floor (total_seconds);  // Поместите минуты и секунды с ведущими нулями, если требуется часы = pretty_time_string (часы);  minutes = pretty_time_string (минуты);  seconds = pretty_time_string (секунды);  // Составляем строку для отображения var currentTimeString = hours + ":" + minutes + ":" + seconds;  return currentTimeString;  } var elapsed_seconds = 0;  setInterval (function () {elapsed_seconds = elapsed_seconds + 1; $ ('# box_header'). text (get_elapsed_time_string (elapsed_seconds));}, 1000);   

-3
задан Tree 25 July 2012 в 14:48
поделиться

3 ответа

Вы можете выполнить поиск через 2D-массив следующим образом:

for (int i = 0; i < rowLength; i++) {
    for (int j = 0; j < colLength; j++) {
        if (tax[i][j].equals(state))
            printArray(tax, i);
    }
}

public static void printArray(String[][] array, int row) {
    for(int i = 0; i < rowLength; i++)
        System.out.print(array[row][i] + " "); 
}

Чтобы ответить на вопрос @ Tree, так вы можете проверить, равны ли две строки:

public static boolean rowEquals(String[] one, String[] two) {
    for(int i = 0; i < one.length; i++)
        if(!one[i].equals(two[i]))
            return false;
    return true;
}
3
ответ дан jrad 15 August 2018 в 19:50
поделиться
  • 1
    это похоже на то, что я искал, единственная проблема заключается в том, что я хочу распечатать информацию, содержащуюся во всей этой строке, а не индекс строки. – Tree 25 July 2012 в 14:59
  • 2
    Я думаю, это должно было сделать трюк. – jrad 25 July 2012 в 15:01
  • 3
    хорошо, я играл с нижней половиной более часа, я попробовал это в своем собственном методе, как будто у вас есть, и он ничего не сделал, я попробовал его в своем методе выплаты и ничего не сделал. это то, что я сделал для редактирования: for (int i = 0; i & lt; 8; i ++) System.out.print (array [row] [i] + "quot;"); } – Tree 25 July 2012 в 16:34
  • 4
    Это ничуть не отличается от того, что я предложил, что сработало для меня. – jrad 25 July 2012 в 16:39
  • 5
    хорошо, я наконец получил это LOL. Мне не хватало очень ключевого элемента, который вызывал printArray .... :( глупая ошибка. Спасибо за помощь, это действительно помогло мне! – Tree 25 July 2012 в 16:42

Вам нужно искать [0] [1] [0] [2] .. и так далее, по обоим измерениям, пока не найдете то, что ищете ...

вы могли бы сделать вложенные для циклов.

Вы также должны опубликовать то, что вы пробовали, чтобы мы могли вам помочь.

искать 2-мерный массив в java

0
ответ дан Community 15 August 2018 в 19:50
поделиться

Чтобы ответить на ваш вопрос, вы можете выполнять итерацию через массив tax, проверяя каждый элемент следующим образом:

private static String[][] tax = ...;

private static String[] ticketpayout(String state) {
    for (String[] taxRow : tax) {
        if (taxRow[0].equals(state)) {
            return taxRow;
        }
    }

    return null;
}

Однако я бы не счел это лучшим класс дизайн для проблемы, кажется, вы пытаетесь решить. Было бы лучше сделать объект из данных здесь и добавить их в карту на основе аббревиатуры состояния следующим образом:

public class TaxInfo {
    String state;
    double taxRate;
    Period period;
    etc...

    enum Period {
        ANNUALLY,
        MONTHLY,
        etc...
    }
}

private static Map<String, TaxInfo> tax = new HashMap<String, TaxInfo>();

private static void populateTaxInfo() {
    tax.put("AZ", new TaxInfo("AZ", 5, TaxInfo.Period.ANNUALLY, ...));
    tax.put("AR", new TaxInfo("AR", 7, TaxInfo.Period.ANNUALLY, ...));
    tax.put("CO", new TaxInfo("CO", 4, TaxInfo.Period.ANNUALLY, ...));
    ...
}

Затем, чтобы получить записи, просто сделайте, например. tax.get("AZ");

0
ответ дан Jon Newmuis 15 August 2018 в 19:50
поделиться
  • 1
    Спасибо за ваш ответ. это, тем не менее, больше связано с тем, что мы узнали в классе. поэтому я немного потерял ваш код. – Tree 25 July 2012 в 15:00
  • 2
    Тогда первая часть (перед разрывом горизонтальной линии) должна быть достаточной для решения вашей проблемы. Похоже, что другой ответ помог, так что это достаточно хорошо! – Jon Newmuis 25 July 2012 в 15:04
Другие вопросы по тегам:

Похожие вопросы: