car
이 초기화되지 않았거나 요소가없는 String
배열 인 다음 행에 문제가 있습니다.문자열 배열의 길이를 찾는 방법은 무엇입니까?
String car [];
System.out.println(car.length);
가능한 해결책은 무엇입니까?
car
이 초기화되지 않았거나 요소가없는 String
배열 인 다음 행에 문제가 있습니다.문자열 배열의 길이를 찾는 방법은 무엇입니까?
String car [];
System.out.println(car.length);
가능한 해결책은 무엇입니까?
car
은 초기화되지 않았으므로 길이가없고 값은 null
입니다. 그러나 컴파일러는 코드 을과 같이 컴파일하도록 허용하지 않습니다. 다음 오류가 발생합니다. 변수 자동차가 초기화되지 않았을 수 있습니다..
가 먼저 초기화해야하고, 다음 .length
사용할 수 있습니다 당신은 빈 배열을 초기화해야하는 경우
String car[] = new String[] { "BMW", "Bentley" };
System.out.println(car.length);
을, 다음을 사용할 수 있습니다
String car[] = new String[] { }; // or simply String car[] = { };
System.out.println(car.length);
당신이 필요로하는 경우 특정 위치를 채우기 위해 특정 크기로 초기화하려면 다음을 사용할 수 있습니다.
String car[] = new String[3]; // initialize a String[] with length 3
System.out.println(car.length); // 3
car[0] = "BMW";
System.out.println(car.length); // 3
(210)
그러나, 나는 당신이 그것에 요소를 추가하려는 경우, 대신 List
를 사용하는 것이 좋습니다 것 :
List<String> cars = new ArrayList<String>();
System.out.println(cars.size()); // 0
cars.add("BMW");
System.out.println(cars.size()); // 1
+1은 제안 목록을위한 것입니다.이 목록은 거의 항상 배열보다 더 적합한 * 인터페이스 *입니다. –
첫 번째 진술 "자동차가 초기화되지 않았으므로 길이가없고 그 값은 null입니다"라는 오류가 잘못되었습니다. 자동차가 초기화되지 않았기 때문에 코드는 컴파일되지 않습니다. 잠재적으로 초기화되지 않은 변수를 참조하는 것은 컴파일 타임 오류입니다. – jarnbjo
맞습니다. javac이 실제로 그 오류를 던집니다. 나는 그것을 설명하기 위해 나의 대답을 편집했다. –
음,이 경우 car
변수는 null
, 당신이 할 정도로 (그것을 역 참조 할 것 car.length
에 액세스 할 때) NullPointerException
이 표시됩니다.
실제로 어떤 값이 할당 될 때까지 해당 변수 을에 액세스 할 수 없습니다. 그렇지 않으면 컴파일러에서 "변수 자동차가 초기화되지 않았을 수 있습니다."라고 불평 할 것입니다.
여기서 무엇을하려고합니까? 정확히 "솔루션"이 무엇인지 찾고 계십니까?
잘 동적 웹 프로젝트의 일부로, 어떤 값이 배열에 저장 될지 여부는 확실하지 않습니다 !! 그리고 나서 배열에 아무것도 없는지 확인하고 싶습니다 ... –
String car [];
은 String-s 배열에 대한 참조입니다. 거기에 배열이 없으므로 길이를 볼 수 없습니다!
난 당신이 작동하지 않습니다이
String[] car = new String[10];
int size = car.length;
wazzy : 배열의 크기가 손에 알려지지 않았습니까? –
그러면 배열이 최선의 선택이 아닐 수도 있습니다. @Joao가 추천 한대로 목록을보십시오. –
를 찾고 있습니다 생각합니다. 먼저 배열을 초기화해야합니다. 지금까지 null
을 가리키는 String [] 참조 만 있습니다.
길이 구성원을 읽으려고하면 실제로는 null.length
이되어 NullPointerException이 발생합니다.
car
을 초기화하지 않았으므로 JVM (Java Virtual Machine)에 존재하지 않으므로 먼저 초기화해야합니다. 예를 들어
:
car = new String{"Porsche","Lamborghini"};
이제 코드는 잘 실행됩니다.
INPUT :
String car [];
car = new String{"Porsche","Lamborghini"};
System.out.println(car.length);
출력 : 위의 모든 답변은 NullPointerException이 발생합니다 제안으로
2
.
일부 값으로 초기화 한 다음 length 속성을 올바르게 사용할 수 있습니다. 예 :
String[] str = { "plastic", "paper", "use", "throw" };
System.out.println("Length is:::" + str.length);
'str'배열이 정의되었으며 길이도 정의 된 값을 갖습니다.
자바에서, 우리는
String []car;
String car[];
우리는 새로운 연산자를 사용하여 배열을 만들 때와 유형을 지정하여 배열 (. 예를 들어, 자동차)의 문자열을 선언 -
String []car=new String[];
String car[]=new String[];
이는 할당 문자열의 배열에 대한 참조를 자동차에 적용합니다. 당신은 또한 초기화하여 배열을 만들 수 있습니다 -
String []car={"Sedan","SUV","Hatchback","Convertible"};
는 당신이 배열을 초기화하지 않은 당신이 액세스하려는 때문에, NullPointerException이가 발생합니다.
아마도이 솔루션은 문제에 달려 있습니다. 그게 뭔지 알려주지? – jarnbjo