백엔드 부트캠프[사전캠프]/TIL

[내일배움캠프-사전캠프 04일차] 자바 공부

sintory-04 2025. 1. 23. 18:13

len 만해도 python에서는 len() 이런식만 해도 출력이 됐고, 문자열 * 숫자 하면 숫자만큼 문자열이 더해졌는데. 

자바는 그런 게 안 된다.

그렇다 보니 하나 하나 함수를 찾아보아야 한다.

1. 문자열 반복  reapeat

reapeat는 반복이다. 파이썬에서는 문자*숫자를 하면 숫자만큼 문자열이 더해졌지만. 자바에서는 없다.

그리하여 reapeat 를 이용하여 반복을 해주어야한다. for문으로 구현할 수 있지만!

for문보다는 함수가 간지나잖아요 ^ㅡ^

char character = '-'; // 곱하고 싶은 문자
int times = 4; // 반복 횟수
// char을 String으로 변환하고 repeat 사용
String result = String.valueOf(character).repeat(times)

- 이게 또 번거로운 포인트가 있는데. 만약 char 이다? 그러면 valueOf를 통해서 String으로 변환해줘야한다.

2. 특정 문자 있는지 없는지 확인하기

- 문자열과 문자열 배열, array list는 각자 특정문자열을 조회하는게 다른 거 같다.

1) 문자열 contains()   

- true/false 로 나온다.

text.contains(word);

2) String[] 문자열 배열 Arrays.asList(list).contains(word)

- String 배열의 경우에는 ArrayList로 변환 후 확인해주어야 한다.

String[] list = ["a","b","c"];
String word = "a";
System.out.println(Arrays.asList(list).contains(word));

3) ArrayList list.contains()

ArrayList<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("cherry");
String word = "apple";
System.out.println(Arrays.asList(list).contains(word)); // true

4) 중요한 부분을 한번 짚어보자. 

문자열 배열이랑 Arraylist 랑 뭐가 다른가 ?에 대해서 알아보자.

1. String[] 문자열 배열

- 문자열 배열은 고정 크기이다. 선언시 크기 설정 후 변경이 불가능하다.  > 따라서 값 추가, 값 제거 불가능하다.

- 값의 수정은 가능하다.(인덱스를 통해 값 변경이 가능)

- 이 부분은 중요한데. 크기 확인 할 때 array.length 로 가능하다.

- 순회 방법으로는 for, for-each, while 사용

- 유연성: 크기와 값 변경이 제한적

- 메모리 사용: 크기가 고정이라 메모리는 효율적임. / 값 검색 등에서 다소 빠름.

2. ArrayList<String> 문자열 리스트

- 동적크기이다. 필요에 따라 크기를 자유롭게 조정 가능하다.

- 크기 확인 할때 list.size() 로 가능하다.

- 추가 list.add("value");삭제 list.remove("value"); list.remove(index);

- 값 수정 가능하다. 크기와 값 변경이 유연하다.

- 크기 조정 시 오버헤드가 발생할 수 있다.

- 값 검색에서는 느릴 수 있음. 데이터 크기가 동적이고 자주 추가/삭제가 필요할 경우 사용.

5) indexOf() 사용하기

- 인덱스 위치를 반환한다. 반환시에는 해당 인덱스 위치를 알려주고, 존재하지 않으면 -1을 반환한다.

3.문자인지 아닌지 확인

Character.isLetter(char ch)

- boolean으로 반환됨.

- 매개변수로 char를 받는다.

- String일 경우. String일 경우에는 word.charAt(0) 이런식으로 단일 문자에 접근해주어야한다.

 

** 오늘의 회고

- PYTHON을 배운사람이 JAVA를 한다고 하니 진짜 다른 부분이 너무 많다..

- 파이썬에서는 되었던 함수가 자바에서는 지원 하지 않고.

- 파이썬에서의 List와 자바에서의 Stirng[], ArrayList와 다르다. 그러다 보니 찾아보는 시간이 꽤나 걸렸던 거 같다.

- 오늘 문제 하나만 풀었는데. 그 문제는 나중에 밥 먹고 다시 자세히 정리해서 업로드 할 계획이다.

- 생각보다.. 문제에 예외가 많다.

- 나는 문제를 풀때 제시된 문항을 쉽게 쉽게 넘기고 싶지 않다. 그래서 예외가 보인다면 그걸 하나하나 꼼꼼하게 수정하고자하는 집착이 있다. 그렇다 보니 이렇게 오래 걸린 것이 아닌가 싶다? 얼른.. 자바 끝내고 싶다 ㅠ