이 간단한 질문으로 모두 귀찮게 해달라고 사과하지만 replaceAll ("\.", "")을 호출 할 때 null 포인터 예외로 계속 실행됩니다. 이유는 궁금합니다. 의심의 여지없이 그것은 내가 얻지 못하는 단순한 무언가이다.Java : replaceAll을 사용한 Null 포인터 예외
간략한 요약 IPAddress : 언급 된 첫 번째 클래스는 ipAddress 클래스에서 IPAddress 클래스에 저장 될 IPAddressTester (이후 언급 함)의 String 값을 전달합니다. 문자열 자체는 ###. ###. ###. ## 형식입니다. 궁극적 인 목표는이 문자열의 마침표를 제거하고 결과 토큰을 결합한 다음 나중의 조작을 위해 정수로 변환하는 것입니다 (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();
}
}
다시 말하지만, 진심이 당신의 모든 귀찮게에 대한 사과,하지만 난 아마 간단한 하나 또는 두 개의 문장 대답을 (해야합니다이 질문을 추측하고있어 어떤 희망하지 않습니다 에헴 너무 모욕됩니다 ;-)). (그렇지 않으면 여전히 널이기 때문에) 당신이 실제로 ipString에 값을 할당 한 후
우수! 너는 성자 야! 무리 감사! :디 – user1309459