0
所以我試圖從羅馬數字轉換爲整數。我到目前爲止是這樣的:羅馬數字整數:我的代碼有什麼問題
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」))'......你在哪裏改變'substring',所以這可能會返回'false'?你的程序不會讓你輸入東西,它會陷入無限循環。 – Tom 2014-11-05 00:21:54
String類有一個charAt(int index)方法,可用於在特定位置獲取角色,就如你所知。 – jrahhali 2014-11-05 00:23:50
我有點認爲它卡在一個無限循環中,但是如何讓它在我想要的時候返回false – Matt 2014-11-05 00:34:03