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와 다르다. 그러다 보니 찾아보는 시간이 꽤나 걸렸던 거 같다.
- 오늘 문제 하나만 풀었는데. 그 문제는 나중에 밥 먹고 다시 자세히 정리해서 업로드 할 계획이다.
- 생각보다.. 문제에 예외가 많다.
- 나는 문제를 풀때 제시된 문항을 쉽게 쉽게 넘기고 싶지 않다. 그래서 예외가 보인다면 그걸 하나하나 꼼꼼하게 수정하고자하는 집착이 있다. 그렇다 보니 이렇게 오래 걸린 것이 아닌가 싶다? 얼른.. 자바 끝내고 싶다 ㅠ
'백엔드 부트캠프[사전캠프] > TIL' 카테고리의 다른 글
[내일배움캠프-사전캠프 06일차] SQL 3주차, 4주차 강의 (0) | 2025.01.27 |
---|---|
[내일배움캠프-사전캠프 05일차] SQL 수업 듣기 (2) | 2025.01.24 |
[내일배움캠프-사전캠프 03일차] JAVA 입문 (0) | 2025.01.21 |
[내일배움캠프-사전캠프 02일차] SQL의 서브쿼리, DATEDIFF (1) | 2025.01.20 |
[내일배움캠프-사전캠프 01일차] SQL 기초 (0) | 2025.01.17 |