자바

[자바 개념] Character, String

라임온조 2023. 1. 6. 18:22

1. Character 메소드

1) isUpperCase, isLowerCase

Character.isUpperCase(c) // t 혹은 f return

2) toUpperCase, toLowerCase

Character.toLowerCase(c) // c를 소문자로 바꾼 결과 return

3) forDigit

int num = 7;
Character.forDigit(num, 10); //num을 10진수를 이용하여 char로 변환, 여기서는 '7'을 return

4) isDigit

Character.isDigit('3');
// character가 숫자이면 true 출력 아니면 false 출력

2. String 

1) 개념

문자열을 나타낸다

2) 특징

  • java.lang 패키지에 포함된 클래스
  • 일단 생성된 스트링 객체는 리터럴로 생성되었든, new String으로 생성되었든 수정이 불가능하다 
  • 따라서 string과 string을 더하면 새로운 string 객체를 생성해야 한다. -> string과 string을 더하는 시점에 메모리 할당과 메모리 해제가 계속 발생하게 된다.
  • 문자(char)의 나열로 구성된 객체이다.

3) 생성 방법

String str1 = "abcd";
String str2 = new String("abcde");
String str3 = new String({'a','b'});

4) 생성할 때 스트링 리터럴과 new String() 의 차이

스트링 리터럴

  • heap 메모리 영역안의 특별한 메모리 공간인 String constant pool에 저장된다
  • 자바 내부에서 리터럴 테이블로 관리하여 동일한 리터럴 들어오면 동일한 걸 공유시킨다
  • 스트링을 생성하는 실행 시간을 줄일 수 있게 해준다
  • 일단 생성된 스트링 객체는 수정 불가능하기 때문에 스트링 리터럴로 생성 후 공유해도 문제가 발생하지 않는다

new String()

  • new를 이용하여 생성되는 다른 객체와 동일하게 힙 메모리에 생성됨

5) 메소드

charAt

str.charAt(index) //str 중 index에 해당하는 문자를 char 형태로 return

valueOf

String.valueOf(c) // c를 string으로 변환한 string 형태를 return

toLowerCase, toUpperCase

str.toLowerCase() // str을 소문자로 변경한 string 형태를 return

split

String s1 = "abcde";
s1.split(""); //s1을 문자 하나하나씩 분할한 string 배열을 return
String s2 = "a,b,c,d,e";
s1.split(","); //s2를 ,로 구분한 string 배열을 return

equals

String s1 = "abcde";
s1.equals("avc");//s1에 있는 string과 ()안에 있는 string이 같으면 true, 다르면 false return
  • string이 같은지 비교할 때는 == 을 사용하면 안 된다
  • ==은 객체가 같은지 검사할 때 사용함

concat

String s1 = "abc";
String s2 = "de";
s1.concat(s2); //s1에 s2를 합친 string 결과물을 return, s1과 s2는 그대로 있고 새로운 결과물이 나오게 되는 것
  • string은 + 연산자를 통해서도 합칠 수 있다.

replaceAll

String s1 = "sd,df123,df3";
String s2 = s1.replaceAll(",",""); //,를 찾아 ""으로 만든 string을 return
String s1 = "123dfsdf23";
String s2 = s1.replaceAll("[^0-9]",""); //s1에서 숫자가 아닌 문자들을 "" 바꾼 string을 return

join

String[] strArr = {"a","v"};
String.join("",strArr); // strArr을 "" 을 이용해 합친 String return

indexOf

String str1 = "abcde";
int answer = str1.indexOf("a"); // str1에서 a의 위치를 찾아 있으면 해당 index 리턴(앞에서 부터 처음 발견되는 index), 없으면 -1 리턴

toCharArray

String str1 = "abcde";
str1.toCharArray(); //str1을 char로 분해한 charArray를 return

substring

String str = "hello";
str.substring(0,4); // 인덱스 0부터 3까지의 문자열 hell을 리턴

contains

String str = "hello";
str.contains("el"); //str이 "el"을 포함하고 있으면 true, 포함하고 있지 않으면 false 리턴

trim

String str = " s df   ";
str.trim(); //str 맨 앞, 맨 뒤에서 공백 제거한 문자열 "s df"를 리턴

repeat

String str = "abc";
str.repeat(3); //str을 3번 반복한 String을 return(예: abcabcabc)

startsWith

String str = "abc";
str.startsWith("ab"); // true 리턴

'자바' 카테고리의 다른 글

[자바 개념] switch  (0) 2023.01.12
[자바 개념] Math  (0) 2023.01.12
[자바 개념] 배열, Arrays, ArrayList  (0) 2023.01.11
[자바 개념] Wrapper  (0) 2023.01.11
[자바 개념] Collection과 Collections  (0) 2023.01.06