我正在嘗試爲學校編寫一個JAVA程序。它要求我們使用提供的類,避免使用拆分,並解析不同部分之間由:
分隔的電話號碼。解析電話號碼不使用拆分
package aaronjonesprog1;
public class AaronJonesProg1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
AJDissector phone = new AJDissector("1:919:882:5000");
System.out.println(phone.getPhoneNumber());
System.out.println(phone.getPhoneNumber(4));
System.out.println(phone.getPhoneNumber(1));
System.out.println(phone.getPhoneNumber(3));
System.out.println(phone.getPhoneNumber(2));
}
}
我的司機:
package aaronjonesprog1;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Aaron
*/
public class AJDissector
{
private String phoneColon;
private int areaCode, preCode, number, countryCode, emptyNum;
public AJDissector(String phoneNum)
{
this.phoneColon = phoneNum;
int index0 = phoneNum.indexOf(":");
int index1 = phoneNum.indexOf(":", index0);
int index2 = phoneNum.lastIndexOf(":");
this.countryCode = Integer.parseInt(phoneNum.substring(0, index0));
this.areaCode = Integer.parseInt(phoneNum.substring(index0, index1));
this.preCode = Integer.parseInt(phoneNum.substring(index1, index2));
this.number = Integer.parseInt(phoneNum.substring(index2));
}
public String getPhoneNumber()
{
return this.phoneColon;
}
public int getPhoneNumber(int a)
{
switch (a)
{
case 1:
return this.number;
case 2:
return this.countryCode;
case 3:
return this.preCode;
case 4:
return this.number;
default:
return this.emptyNum;
}
}
}
我收到的錯誤是:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:504)
at java.lang.Integer.parseInt(Integer.java:527)
at aaronjonesprog1.AJDissector.<init>(AJDissector.java:26)
at aaronjonesprog1.AaronJonesProg1.main(AaronJonesProg1.java:18)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
有人可以幫助我理解我在做什麼錯?我不相信我正在使用parseInt
錯誤。我試圖找出http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Integer.html,但我認爲我的代碼是正確的。任何人都可以告訴我我在這裏做錯了什麼?
瞭解如何使用調試器,並通過您的代碼步。這是你可以得到的最有價值的建議。 – Bohemian
我去了調試,它在我的代碼中顯示了一條綠線。然後我按F5,它吐出了我上面的同樣的錯誤...? – ILikeTurtles
就這樣說,電話號碼不是數字。是的,它們由數字組成,但這並不能使它們成爲數字;他們可以很容易地通過字母A到J.(事實上,公司*在他們的「數字」中使用字母。通常)。Ints通常會吮吸在存儲它們......原因包括這樣一個事實,即使您轉換字母到數字,前導零可以在電話號碼中顯着。 – cHao