Backend/Java

[Java] Array(배열)_String[] (null)

Deeb 2021. 9. 2. 10:41

✍String[] 

 

기본자료형 8가지(byte.), 가 아닌 나머지들

String은 정해진  byte크기가 없다. 그래서 stack에서는 주소만 저장하고 heap에 값이 저장된다

 


string배열의 메모리 구조

 

Heap영역에는 초기화를 해주기전에는 값이 없다.

double의 초기값 0.0

int의 초기값 0

String과 같은 참조형 변수의 기본값 : null

null의 의미

: 참조하고있는 주소가 없다. (비어있다x)

heap영역은 변수가 비어있을 수 없기 때문이다. 

 

코드 예제

String str1 = "Apple";
String str2 = "Banana";
		
String[] arr = new String[3];
arr[0] = "Hello";
arr[1] = "안녕";
arr[2] = "Hi";
		
System.out.println(str1); //str1에는 "Apple"이 저장되어있는 Heap영역 주소가 저장된다.
System.out.println(str2); //주소가 아닌 주소에 저장된 값을 참조하여 출력
		
for(int i =0; i<arr.length; i++) {
	System.out.println(arr[i]);
}

 

System.out.print("단어 입력 : ");
String word = sc.next();

System.out.print("찾을 문자 : ");
char[] arr = new char[word.length()];

	for(int i =0; i<arr.length; i++) {	
		arr[i] = word.charAt(i); 
	}

	char ch = sc.next().charAt(0);
    
	int count = 0; //검색된 문자 개수를 기록할 변수

	for(int i = 0; i <arr.length; i++) {
		if(arr[i] == ch) {
			count++; //count1증가
		}//if
			
	}//for
		
	if(count == 0) { //for문을 거치고도 count가 증가하지 않았다면
		System.out.println(ch + "은/는 존재하지 않습니다.");
			
	} else {
		System.out.println(ch + "은/는 총"+ count + "개가 존재합니다.");
	}
풀이
1. string으로 원하는 단어 입력받기
2. 찾으려는 문자 입력받은 후 그전에 입력받은 단어만큼의 char문자 배열 생성
3. for문으로 각 인덱스에 단어들을 하나씩 분리해서 초기화
4. arr배열과 비교할 변수 ch생성
5. 중복되는 인덱스값 저장할 count 변수 생성
6. for문 안에서 if문으로 arr[]값과 ch 비교
7. 두 개의 값이 같다면 개수 저장용 변수의 값을 1증가
8. for문 종료 후 결과값 출력 if문 작성
반응형