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);
Вы можете выполнить поиск через 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;
}
Вам нужно искать [0] [1] [0] [2] .. и так далее, по обоим измерениям, пока не найдете то, что ищете ...
вы могли бы сделать вложенные для циклов.
Вы также должны опубликовать то, что вы пробовали, чтобы мы могли вам помочь.
Чтобы ответить на ваш вопрос, вы можете выполнять итерацию через массив 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");