Пишу класс, в котором есть метод (acceptSelection), принимающий пользовательский ход в виде строки типа "А3", "В4" и тому подобное. В этом методе происходит отделение символа от числа. В итоге получаются четыре переменные : word1, number1, word2, word2, которые являются строковыми и числовыми представлениями пользовательского хода соответственно. То есть , допустим, были ходы А3 и В4 , значит word1="A", word2="B", number1=3, number2=4. После этого необходимо определить их индексы в массиве из метода (getScore).
public class ExampleOne {
private static int number1;
private static int number2;
private static String word1;
private static String word2;
private static int index1;
private static int index2;
private static String a3 = "A3";
private static String b4 = "B4";
public static void main (String args[]) {
acceptSelection(a3, b4);
System.out.println("Index 1 " + index1);
System.out.println("Index 2 " + index2); }
public static int getScore (String df, int b) {
int totalScore=0;
if (a=="A") {
totalScore = (0+b)-1;
//return totalScore;
}
else if (a=="B") {
totalScore = (4+b)-1;
//return totalScore;
}
else if (a=="C") {
totalScore = (8+b)-1;
//return totalScore;
}
else if (a=="D") {
totalScore = (12+b)-1;
//return totalScore;
}
else if (a=="E") {
totalScore = (16+b)-1;
//return totalScore;
}
else if (a=="F") {
totalScore = (20+b)-1;
//return totalScore;
}
else if (a=="G") {
totalScore = (24+b)-1;
//return totalScore;
}
return totalScore;
}
public static void acceptSelection (String a, String b) {
Pattern number = Pattern.compile("[0-9]");
Matcher m = number.matcher(a);
Matcher m1 = number.matcher(b);
while (m.find()) {
number1 =Integer.parseInt(a.substring(m.start(), m.end()));
}
while (m1.find()) {
number2 =Integer.parseInt(b.substring(m1.start(), m1.end()));
}
Pattern word = Pattern.compile("[a-zA-Z]");
Matcher w = word.matcher(a);
Matcher w1 = word.matcher(b);
while (w.find()) {
word1 = a.substring(w.start() , w.end());
}
while (w1.find()) {
word2 = b.substring(w1.start() , w1.end());
}
index1 = getScore(word1, number1);
index2 = getScore(word2, number2);
}
При вызове метода getScore таким способом index1 = getScore(word1, number1), возвращается нулевое значение totalScore. Однако, если вызвать метод таким образом: index1 = getScore("A", 3) все работает правильно. Не могу понять в чем проблема. Кажется, что проблема кроется в простом, просто не вижу.
Предлагаю то же самое, но несколько попроще.
UPD: и еще несколько проще:
public class ExampleOne {
private static String a3 = "A3";
private static String b4 = "B4";
public static void main(String args[]) {
System.out.println("Index 1 " + acceptSelection(a3));
System.out.println("Index 2 " + acceptSelection(b4));
}
public static int getScore(char ch, int num) {
int code = (int)ch;
return (code-65)*4+num-1;
}
public static int acceptSelection(String str) {
char word = str.charAt(0);
int number = Character.getNumericValue(str.charAt(1));
return getScore( word, number);
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Взял пример отсюда, изменил только папку baseDir, файл в нее положилПостоянно появляется ошибка: Exception in thread "main" org
В сервлете необходимо получить инстанс DAO который обернут в AtomicReference, но при приведении типов компилятор волнуется и пишет:
Есть ли такой макрос, который автоматически генерировал в коде все объекты из filefxml?