JAVA 프로그래밍 및 실습 I - [과제#6] String클래스 조사 및 사용하기(Summary포함)

2025. 5. 17. 16:56·컴퓨터공학과/Java 1 & 2

SUMMARY
Object 클래스 : java.lang 패키지에 포함 모든 클래스의 수퍼클래스(강제상속)

 

새로운클래스 생성할때보면, superclass에 java.lang.Object가 있는것을 볼 수 있었다. / Lab#1 - Object클래스로 객체속성알아내

toString() : 객체정보를 문자열로 반환

boolean equals(Object obj) : 객체 내용이 같은지 비교 // 실제 내용을 물어보는것 

vs

== 연산자: 두 개의 레퍼런스를 비교한다. // 주소를 물어보는 것

 

Wrapper 클래스

자바의 기본 타입을 클래스화한 8개 클래스

Wrapper객체들은 거의 유사하며 많은 메소드가 static 타입이다 = 객체 생성 없이 사용한다.

기본타입 byte short int long char float double boolean
Wrapper클래스 Byte Short Integer Long Character Float Double Boolean

객체 생성방법 : .valueOf() 이용

(예) Integer i = Integer.valueOf(10); // 10이라는 정수 객체 생성.

.parse타입명() : 문자열을 기본데이터타입으로변환

예) int i = Integer.parseInt("123"); // 123이라는 문자를 123 정수 수로 변환

.toString() : 기본타입을 문자열로 변환

String s1 = Integer.toString(123); //정수123을 문자열"123"로 변환

 

박싱 / 언박싱

박싱(boxing) : 기본 타입의 값을 Wrqpper 객체로 변환

언박싱(unboxing) : Wrapper 객체에 들어 있는 기본 타입의 값을 빼내는 것

 

String 클래스

String - java.lang.String ... String도 클래스, 문자열 대입으로 객체 생성 가능.

스트링 클래스는 메소드를 제공해준다.

String 생성자 설명
String() 빈 스트링 객체 생성
String(char[] value) char 배열에 있는 문자들을 스트링객체로 생성
String(String original) 매개변수로 주어진 문자열과 동일한 스트링 객체 생성
String(StringBuffer buffer) 매개변수로 주어진 스트링 버퍼의 문자열을 스트링 객체로 생성

스트링을 생성할 때,

1.리터럴로 생성 // JVM이 리터럴관리 String s = "Hello";
2. String 객체로 생성 // 힙메모리에 생성 String t = new String("HELLO");

이때, new로 객체로 생성하면 변경이 아예 불가하다. 유사 final이라고 생각하자.

1번으로 생성 시,

String a = "Hello";
String b = "Hello"; // 똑같은거 가리킴
String c = new String("Hello");
String d = new String("Hello"); //힙 메모리상에서 c와 d는 각각 별개의 공간에 존재함

String 비교 시, 반드시equals()를 사용한다. (equals() 내용비교 vs == 참조대상(주소)를 비교)

String 클래스의 주요 메소드

메소드 설명
char charAt(int index) index 인덱스에 있는 문자 값 리턴
int codePointAt(int index) index 인덱스에 있는 유니코드값 리턴
int compareTo(String anotherString) 두 스트링을 사전 순으로 비교, 두 스트링이 같으면 0, 현재 스트링이 anotherString보다 먼저 나오면 음수, 아니면 양수
String concat(String str) 기존 String객체에 연결되지 않고 ,
현재 스트링 뒤에 str스트링을 덧붙인 새로운 스트링 리턴
(즉, 기존의 것과 저장된 주소가 다름.)
Boolean contains(CharSequence s) s에 저장된 문자들을 포함하고 있다면 true 리턴
int length() 스트링의 길이(문자개수)리턴
String replace(Charsequence target, Charsequence replacement) target이 지정하는 일련의 문자들을 replacement가 지정하는 문자들로 변경한 스트링 리턴
String[] split(String regex)  정규식 regex에 일치하는 부분을 중심으로 스트링을 분리하고, 분리된 스트링들을 배열로 저장하여 리턴
  단어별로나누기, 공백 등. 이후에 String tokenizer로 더 enhance된 버전이 있음
String subString(int beginIndex) beginIndex 인덱스부터 시작하는 서브스트링 리턴
String toLowerCase() 소문자로 변경한 스트링리턴
String toUpperCase() 대문자로 변경한 스트링리턴
String trim() 스트링 앞뒤의 공백 문자들을 제거한 스트링 리턴

+ 연산자로 연결?

    피연산자에 문자열이나 객체가 포함되어있는 경우, 객체는 객체.toString()을 호출해 문자열로 변환해 연결. 새로운스트링 객체 생성. 기본타입은 문자열로 변환하여 연결한다. => concat과 비교!

 

trim() 

   문자열 앞뒤 공백 제거, 내부 공백은 지우지않음. \t 등도 다 지워준다.

StringBuffer 클래스

   가변 크기의 문자열 저장 클래스. // java.lang.StringBuffer

    String 클래스와 달리 문자열 변경이 가능하다.

 

StringTokenizer 클래스 : 하나의 문자열을 구분 문자를 이용하여 여러 토큰(문자열)로 분리

 ? 토큰 ? : 구분 문자로 분리된 문자열

(예) StringTokenizer = st = newStringTokenizer(query, "&="); // 구분문자는 &와 =이다. 2개

=======

추가로 알아본 String클래스의 메소드

메소드 설명

boolean equals(Object another) 두 문자열이 동일한지 비교 (내용 기준)
boolean equalsIgnoreCase(String another) 대소문자 무시하고 문자열 비교
int indexOf(String str) 지정한 문자열이 처음 등장하는 위치 반환
int lastIndexOf(String str) 지정한 문자열이 마지막으로 등장하는 위치 반환
boolean startsWith(String prefix) 주어진 prefix로 시작하는지 확인
boolean endsWith(String suffix) 주어진 suffix로 끝나는지 확인
char[] toCharArray() 문자열을 문자 배열로 변환
String valueOf(primitive or object) 기본형 또는 객체를 문자열로 변환 (정적 메소드)
String join(CharSequence delimiter, CharSequence... elements) 여러 문자열을 delimiter로 구분하여 결합
String repeat(int count) 문자열을 count만큼 반복한 새 문자열 반환 (Java 11 이상)
String strip() 문자열 앞뒤의 공백 제거 (Java 11 이상), trim보다 유니코드 처리에 강함
IntStream chars() 문자열의 각 문자를 int(유니코드) 스트림으로 반환

다음은 이미지에 나온 String 클래스의 메소드 중 5개 이상을 선택하여 Java에서의 활용 방법과 예시를 정리한 본문입니다.

 

Java String 클래스 주요 메소드 활용 정리

1. charAt(int index)

문자열에서 지정된 인덱스의 문자 하나를 반환 (index는 0부터 시작) 

String str = "Hello";
char ch = str.charAt(1);  // 'e'
System.out.println(ch);   // 출력: e

2. compareTo(String anotherString)

두 문자열을 사전 순으로 비교합니다.

  • 같으면 0,
  • 현재 문자열이 먼저 나오면 음수,
  • 나중이면 양수를 반환
String a = "apple";
String b = "banana";
int result = a.compareTo(b);
System.out.println(result);  // 출력: 음수 (apple이 banana보다 먼저 옴)

3. contains(CharSequence s)

주어진 문자열이 포함되어 있는지를 검사한다.

String str = "Java programming is hell";
boolean hasWord = str.contains("programming");
System.out.println(hasWord);  // 출력: true

4. length()

문자열의 길이(문자 수)를 반환한다.

String str = "Hello!";
int len = str.length();
System.out.println(len);  // 출력: 6

5. split(String regex)

설명: 주어진 정규식 기준으로 문자열을 나누고, 결과를 배열로 반환한다.

String data = "apple,banana,grape";
String[] fruits = data.split(",");
for (String fruit : fruits) {
    System.out.println(fruit);
}
// 출력:
// apple
// banana
// grape

6. trim()

설명: 문자열의 앞뒤에 있는 공백을 제거한다.

String input = "  Hello Java!  ";
String result = input.trim();
System.out.println(result);  // 출력: "Hello Java!"

 

'컴퓨터공학과 > Java 1 & 2' 카테고리의 다른 글

JAVA프로그래밍 및 실습I 과제#7예외처리 조사 및 사용하기  (0) 2025.05.17
[문제해결] 이클립스 패키지탐색기에서 파일이 열리는 경우  (0) 2025.05.17
chap06-Inheritance-interface  (0) 2025.05.10
[문제해결] Amateras, Eclipse, 생성자  (0) 2025.05.10
[문제해결] ECLIPSE 인코딩 오류 UTF_8  (0) 2025.05.09
'컴퓨터공학과/Java 1 & 2' 카테고리의 다른 글
  • JAVA프로그래밍 및 실습I 과제#7예외처리 조사 및 사용하기
  • [문제해결] 이클립스 패키지탐색기에서 파일이 열리는 경우
  • chap06-Inheritance-interface
  • [문제해결] Amateras, Eclipse, 생성자
sihyes
sihyes
24학번 컴퓨터공학과
  • sihyes
    시혜적으로개발
    sihyes
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (114)
      • 단순 설정 (10)
      • 백엔드 공부(BE, AWS) (8)
        • 로그인&회원가입 (3)
        • 파일업로드&GPT (2)
      • 컴퓨터공학과 (51)
        • 운영체제 (0)
        • Artificial Intelligence (0)
        • Java 1 & 2 (23)
        • 컴퓨터네트워크 (3)
        • 모앱JavaScript (0)
        • Data structures (9)
        • 소프트웨어공학 (5)
        • 오픈SW플랫폼 제출용 (5)
        • Python - 문해프 (1)
      • 개인 프로젝트 (2)
        • 알바솔로몬 (1)
        • PLACO 프로젝트 (0)
      • 도서 공부(정리) (20)
        • 알고리즘 코딩 테스트 자바 편 (1)
        • SQL첫걸음 (8)
        • 코딩 자율학습 스프링 부트 3 자바 백엔드 개발 .. (6)
        • Do it! 지옥에서 온 문서 관리자 깃&깃허브 .. (5)
      • 개인공부정리페이지 (12)
        • 백준 & 프로그래머스 (3)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ㅇ
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
sihyes
JAVA 프로그래밍 및 실습 I - [과제#6] String클래스 조사 및 사용하기(Summary포함)
상단으로

티스토리툴바