프로그래밍 언어발행일 2023. 8. 30.원본 https://blog.naver.com/jword_/223197460179 ↗

자바 문자열 함수 정리

자바 문자열 함수 정리 — #자바문자열 #개발자의도구들 AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다. *이...

#Languages#Naver Blog

#자바문자열 #개발자의도구들

​

AI스쿨 msa기반 java 백엔드 코스 중에 공부한 내용을 작성하였습니다.

​

\이 글은 PC버전에 최적화 되어있습니다\

자바 문자열

이미지

드디어 기다리번 자바를 배우기 시작하였습니다. 처음 배우기 시작한 시점부터 약 3주가량 지났는데, 그동안 코드를 작성하면서 막혔던 문법들을 한번 정리하고자 합니다.

​

보통 문법은 chatGPT와 같은 AI인공지능 챗봇을 활용하는게 훨씬 좋지만, 자주 틀리는걸 따로 정리하여 검색하는 버거로움을 줄이기 위해서입니다.

문자열 기본

문자열이란?

문자열은 말그대로 문자로 구성된 문장을 의미합니다. 문자 배열이라는 의미이기도 해서, 인덱스 값을 가집니다.

​

표현방법

String a = "keyveloper"String a = new String("keyveloper")

자바의 모든 자료형은 클래스라고 보면 되늗네, String()으로 변수를 선언할 경우 새로운 String()객체가 생성됩니다.

​

하지만, 문자열은 리터럴 표기 방식 사용이 가능하기 떄문에 위 처럼 바로 선언하는 것을 권장하고 있습니다. (리터럴 내용은 \원시자료형\ 참고 (업뎃예정))

문자열 내장 메서드

자주 사용되는 문자열 내장 메서드를 정리해보고 몇가지 팁을 보고자 합니다.

​

equals

equals()메서드는 if문에 자주 사용되어 해당 문자가 포함되어있는지 확인하는 문자열입니다..

​

보통 파이썬에서 if문은 if(변수 == "a") or if(변수 == 'a')형태로 사용하는데, 이는 구분이 없습니다. 하지만, 자바에서는 비교대상이 되는 "a"와 'a'는 서로 다릅니다. ""로 선언된 경우는 문자열이며, ''로 선언된 경우는 문자입니다.

​

따라서 비교대성이 문자 그 자체일 경우 ==을 통해 바로 비교하는 것이 바람직하지만, 문자열일 경우에는 ==을 통해 바로 비교하는 것은 문제가 있습니다.

​

아래 예시 코드를 보겠습니다.

String a = "hello"String b = new String("hello");System.out.println(a.equals(b)); //trueSystem.out.println(a == b); //false

a와 b모두 문자열로 선언되었는데, b의 경우 새로운 문자열 객체로 생성되었습니다. 이때 equals() 메서드를 사용하면 문자엶만 비교하기 때문에 true결과가 나오지만, ==으로 비교하면 같은 객체인지까지도 따져보기 떄문에 결과는 false입니다.

​

따라서 같은 문자열인지만 비교할때는 equals()메서드를 사용하여 비교하는 것이 좋습니다.

​

split()

split()메서드는 입력값을 구분할때 자주 사용하고 있습니다. 예를들어 입력에 1 3 4 5 형태로 띄어쓰기로 들어오면 이를 1,3,4,5로 뽑아내야합니다. 이때 구분자로 나누어 배열로 리턴 후 값을 추출할 수 있습니다.

​

import java.util.Scanner​Scanner scanner = new Scanner(System.in);​String number = scanner.nextInt();​// 입력값: 1 2 3 4​String\[\] result = number.splict(" ");​

substring

substring()메서드는 문자열의 서브 문자열을 만드는 메서드입니다. 부분집합을 만드는 메서드로 부시면 되는데 이때 인덱스를 사용합니다.

String a = "hello"​a.substring(0, 2)​// "hel"

문자열에 반복문 돌리기

파이썬과는 다르게 자바에서 문자열을 기본적으로 순회할 수 없습니다. 자바에서 forEach문으로 문자열을 돌리면 다음과 같은 오류가 발생합니다.

String a = "hello"​for(String b : a){ System.out.println(b); //true}​// Foreach not applicable to type "java.lang.String"

이를 해결하기 위해 charAt메서드를 사용할 수 있습니다.

​

charAt

charAt메서드는 String의 특정 위치의 문자 하나를 반환하는 메서드입니다. 주의할점은 이름이 charAt이라고 해서 뽑아낸 char형식으로 변경되는 것은 아닙니다.

String a = "hello"​System.out.println(a.charAt(2)); ​// l 반환 (String)

이를 활영하여 String의 모든 요소를 반복할 수 있습니다.

String a = "hello"​for(int i = 0; i < String.length(); i++){ System.out.println(a.charAt(i)); }​// h e l l o 차례대로 하나씩 반환