Итак, я пытаюсь сделать конвертер с римских цифр целыми числами. То, что я до сих пор это:Roman Numeral to Integer: что не так с моим кодом
public int toNumber(String n){
int number = 0;
int first = 1;
int last = 0;
String substring = n.substring (last, first);
while(substring.equals("I")){
number = number+1;
last = last +1;
first=first +1;
}
while(substring.equals("V")){
number = number+5;
last = last +1;
first=first +1;
}
return number;
}
Очевидно, у меня есть только я и V в прямо сейчас, но когда я делаю класс тестер, чтобы попробовать это, она ничего не возвращает и продолжает препятствовать мне положить в в новом линия.
Для записи, вот мой тестер класс
import java.util.Scanner;
public class Tester{
public static void main (String[] args){
RomanNumeralConverter quantity = new RomanNumeralConverter();
Scanner user_input = new Scanner(System.in);
//this is for roman to number
System.out.println("input roman numeral");
String j = user_input.nextLine();
int g = quantity.toNumber(j);
System.out.println(g);
}
}
Я почти полностью уверен, что это логическая задача, но я понятия не имею, что такое, и я чувствую, что я попробовал все, что я могу думать из
'while (substring.equals (" I "))' ... и где вы меняете 'подстроку', чтобы это могло возвращать' false'? Ваша программа не позволяет вам вводить материал, он застрял в бесконечном цикле. – Tom
Класс String имеет метод charAt (int index), который может использоваться для получения символа в определенном месте, просто чтобы вы знали. – jrahhali
Я как бы понял, что он застрял в бесконечном цикле, но как мне заставить его вернуть false, когда я хочу, чтобы он – Matt