본문 바로가기
인천일보아카데미/- 학습일지

[학습일지]JAVA교육일지 22일차

by w1z 2022. 6. 4.

1. 문자열(String)

  • String trim() 
  • int indexOf() 
  • String toLowerCase(), toUpperCase() 
  • boolean startsWith(), endWith() 
  • String substring() 
  • String replace() 

2. 배열(Array)

  • 배열 형식
  • 배열 + 여러 자료형
  • 배열의 성질 

1. 문자열(String)

  (1) 원시형과 참조형 간의 형변환 불가

  (2) String trim()

   - 공백 제거

   - 문자열 내의 시작과 끝에 존재하는 공백 제거

   - 어디에 쓰일까? --> 주로 검색엔진에서 사용자가 실수로 띄어쓰기 할 때 쓰임

   - 예시)

String txt = "      하나  둘   셋   ";

System.out.printf("[%s]\n", txt);
System.out.printf("[%s]\n", txt.trim());

//output
----> [      하나  둘   셋   ]  
----> [하나  둘  셋]

 

  (3) int indexOf()

   - 문자열 검색

   - 문자열 내에서 원하는 문자(열)을 검색 --> 위치변환가능

   - 없는 값은 -1로 출력

   - 예시)

String txt = "안녕하세요. 홍길동입니다.";

int n = txt.indexOf('홍'); //char
System.out.println(n);

n = txt.indexOf("홍길동"); //String
System.out.println(n);

n = txt.indexOf("아무개"); //없는값
System.out.println(n);


//output
----> 7
----> 7
----> -1

 

  (4) String toLowerCase(), toUpperCase()

   - 소문자 변환 : String toLowerCase()

   - 대문자 변환 : String toUpperCase()

   - 예시)

String txt = "Hello World"

System.out.println(txt);
System.out.println(txt.toLowerCase());
System.out.println(txt.toUpperCase());


//output
----> Hello World
----> hello world
----> HELLO WORLD

 

  (5) boolean startsWith(), endWith()

   - 패턴 검색

   - boolean형식의 참 true, 거짓 false

   - 예시)

String name = "홍길동";

System.out.println(name.startsWith("홍"));
System.out.println(name.startsWith("김"));


//output
----> true
----> false

 

  (6) String substring() 

   - char charAt() : 1문자 추출

   - String substring() : 여러문자 추출

   - String substring(시작지점, 종료지점);

   - 예시)

String txt = "가나다라마바사아자차카타파하";

System.out.println(txt.substring(3, 8));
System.out.println(txt.substring(3));
System.out.println(txt.substring(3, 100)); 

String jumin = "951128-1234567";

System.out.println(jumin.substring(7,8).equals("1") ? "남자" : "여자");


//output
----> 라마바사아
----> 라마바사아자차카타파하
----> Runtime Error 발생 **주의할것**
----> 남자

 

  (7) String replace()

   - 문자열 치환(바꾸기)

   - String replace("치환할 문자열", "치환될 문자열");

   - 예시)

String txt = "안녕하세요. 홍길동님.";

System.out.println(txt.replace("홍길동", "아무개"));


//output
----> 안녕하세요. 아무개님.

 

2. 배열(Array)

  (1) 배열 형식

   - 참조형(Reference Type)

   - 문자열과 유사(문자 배열, char array)

   - 같은 성격의 데이터 + 같은 자료형 = 모아 놓은 집합

   - 예시)

//배열을 이용해서 총합과 평균 구하기

int[] kor = new int[5];

kor[0] = 100;
kor[1] = 80;
kor[2] = 90;
kor[3] = 90;
kor[4] = 100;

int total = 0;

for(int i=0; i<kor.length; i++) {
	total += kor[i];
}

double avg = (double) total / kor.length;

System.out.printf("총점 : %d점, 평균 : %.1f점", total, avg);


//output
----> 총점 : 460점, 평균 : 92.0점

 

  (2) 배열 + 여러 자료형

   - 정수형 배열(byte, short, int, long)

   - 실수형 배열(float, double)

   - 문자형 배열(char)

   - 논리형 배열(boolean)

   - 참조형 배열(String)

   - 나머지 모든 자료형으로 배열 사용가능

 

  (3) 배열의 성질 

   - 배열의 길이는 불변(Immutable) 이다.

   - 한번 생성된 배열의 방 갯수는 수정 X

   - 방을 더 만들거나 삭제 X

   - 배열에 들어갈 데이터의 갯수를 미리 충분히 예측해서 최대값에 근접한 길이로 잡는다. 

   - 자바의 배열은 동적할당이 가능하다.

   - 동적할당, 정적할당 예시)

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		
int n = Integer.parseInt(reader.readLine());
int[] list = new int[n]; //동적할당
int[] list2 = new int[10]; //정적할당

MEMO>

# 문자열의 함수는 60개가 넘는다. 처음이라 복잡하지만 완벽하게 숙지보다 코드를 계속 작성해서 눈과 손으로 익숙해지자.

 

# 배열 선언시, int num[] , int[] num 두개 다 똑같지만, 후자가 더 많이쓰인다. (이유:다른언어도 후자 방식으로함)  

 

# 배열을 왜쓰는지 파악하기