✍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문 작성
반응형
'Backend > Java' 카테고리의 다른 글
[Java] Array(배열)_3 (배열 복사) (0) | 2021.09.03 |
---|---|
[Java] 2차원 Array(배열) + 가변 배열/ 선언,할당,초기화 (0) | 2021.09.02 |
[Java] Array(배열)_2 (초기화, Arrays 클래스, Arrays.toString) (0) | 2021.09.01 |
[Java] Array(배열)_기초1 (0) | 2021.08.31 |
[Java] Operator(연산자) 종류 (0) | 2021.08.26 |