很抱歉用这个相对简单的问题打扰大家,但我在调用 replaceAll("\.","") 时一直遇到空指针异常,我想知道为什么......毫无疑问,我只是简单没有得到。
IPAddress 的简要总结: 提到的第一个类将从 IPAddressTester(后面提到)传递一个字符串值,该值将作为 ipString 存储在 IPAddress 类中。字符串本身的格式为###.###.###.##。我的最终目标是去掉这个字符串的句点,组合生成的标记,然后转换为整数以供以后操作(参见 hashCode 方法)。显然这个类是不完整的,它很可能还有其他问题/问题,但我目前只关注由 replaceAll 导致的空指针错误。
IPAddressTest 小结:顾名思义,就是对IPAddress 进行测试。基本上是一个“司机”。
package ipResolver;
import java.util.Arrays;
import java.util.StringTokenizer;
import java.util.Scanner;
public class IPAddress implements Comparable<IPAddress>{
private String ipString;
private int ipInt;
private int ipHash;
//Constructor
public IPAddress(String ip){
ipString = ip;
}
//--------------------------------Begin Error Region
String tmpString = ipString.replaceAll("\\.","");
//--------------------------------End Error Region
public int hashCode(int ipToBeHashed){
return ipHash;
}
public boolean equals(Object o){
return ipString.equals(String.valueOf(o));
}
public int compareTo(IPAddress IP){
return ipInt - IP.ipInt;
}
public String toString()
{
return ipString;
}
public void gettmpString(){
System.out.println(tmpString);
}
}
IPAddressTest 类
package test_code;
import java.util.Arrays;
import ipResolver.IPAddress;
public class IPAddressTest {
public static void main(String args[]){
String testString = "130.191.208.70";
IPAddress ipAdd = new IPAddress(testString);
System.out.println(ipAdd);
ipAdd.gettmpString();
}
}
再次,我真诚地道歉,打扰你们所有人,但我猜这个问题可能会有一个简单的一两句话答案(希望不会太侮辱人了;-))。