본문 바로가기

언어/Java

String, StringBuffer, StringBuilder 자주 사용하는 내장함수 정리

728x90

안녕하십니까!! 개발자 엄탱입니다.

글을 작성하는 오늘 1월 1일입니다.

모두 새해복 많이 받으시고 더 인정받고 더 잘하는 개발자가 되길 바라겠습니다.

 

오늘은 저번주에 이어서 String, StringBuffer, StringBuilder의 내장함수를 포스팅하고 문자열에 대해서는 마무리하겠습니다!

 

 

 

String 내장함수(메소드)

  • length, equals, split, charAt, toCharArray, indexOf, replace, replaceFirst,, valueOf, toLowerCase, toUpperCase, substring

StringBuffer, StringBuilder 내장함수(메소드)

  • append, delete, insert, charAt, replace, indexOf, length, toString, substring

 

String과 StringBuffer, StringBuilder의 공통부분은  String에서만 설명하고 넘어가겠습니다!!

하지만 replace 같은 경우는 사용법이 다르기 때문에 각각 작성했습니다 :)

 

 

String 내장함수(메소드) 자세히

String.length()

문자열의 길이를 리턴합니다.

public int length()

String str1 = "Hello world!";
System.out.println(str1.length()); //12

String.equals()

String 값만을 비교해서 boolean 값을 반환합니다.

public boolean equals(Object anObject)

String str1 = "Hello";
String str2 = "Hello";
String str3 = "hi";
String str4 = "hello";

System.out.println(str1.equals(str2)); //true
System.out.println(str1.equals(str3)); //false
System.out.println(str1.equals(str4)); //false

String.split()

지정한 문자를 기준으로 문자열을 분리할 수 있습니다.

public String[] split(String regex, int limit)

String str1 = "사과/바나나/딸기/포도/수박";
String[] sSplit1 = str1.split("/");
String[] sSplit2 = str1.split("/", 2);

// 사과 바나나 딸기 포도 수박
Arrays.stream(sSplit1).forEach(s -> System.out.print(s + " "));

System.out.println();

// 사과 바나나/딸기/포도/수박
Arrays.stream(sSplit2).forEach(s -> System.out.print(s + " "));

 

String.charAt()

지정한 index번째에 문자를 반환합니다.

public char charAt(int index)

String str1 = "Hello world!";
System.out.println(str1.charAt(0)); //H
System.out.println(str1.charAt(6)); //w

String.toCharArray()

문자열을 char type 문자 배열로 변환합니다.

public char[] toCharArray()

String str1 = "Hello world!";
char[] chars = str1.toCharArray();

// H e l l o   w o r l d !
for (char c: chars) {
	System.out.print(c + " ");
}

String.indexOf()

특정 문자나 문자열이 처음 발견되는 인덱스를 반환합니다.

// 처음 인덱스를 반환
public int indexOf(int ch)
// fromIndex부터 이후에 인덱스를 반환
public int indexOf(int ch, int fromIndex)

String str1 = "Hello world!";

System.out.println(str1.indexOf("o")); // 4
System.out.println(str1.indexOf("o", str1.indexOf("o") + 1)); // 7

String.replace(), String.replaceFirst()

String의 replace와 StringBuilder, StringBuffer의 replace와는 사용법이 다릅니다.

  • replace(): 문자열 전체에서 자신이 바꾸고 싶은 문자열을 바꾸고 싶은 문자열로 변경된 값을 반환합니다.
  • replaceFirst(): replace()와는 문자열중 처음 발견된 문자열만 변경된 값을 반환합니다.
public String replace(char oldChar, char newChar)
public String replaceFirst(String regex, String replacement)

String str1 = "Hello! world!";

String str2 = str1.replace("!", "~");
String str3 = str1.replaceFirst("!", "~");

System.out.println(str1); //Hello! world! //str1은 변경되지 않습니다.
System.out.println(str2); //Hello~ world~
System.out.println(str3); //Hello~ world!

String.valueOf()

문자열로 변환해 줍니다.

public static String valueOf(Object obj)
public static String valueOf(char[] data)
public static String valueOf(char[] data, int offset, int count)

int num = 12345;
System.out.println(String.valueOf(num)); //12345

char[] chars = {'a', 'p', 'p', 'l', 'e'};
System.out.println(String.valueOf(chars)); //apple

String.toLowerCase(), String.toUpperCase()

  • toLowerCase(): 대상 문자열을 모두 대문자로 변환된 값이 반환됩니다.
  • toUpperCase(): 대상 문자열을 모두 소문자로 변환된 값이 반환됩니다.
public String toLowerCase()
public String toLowerCase(Locale locale)

public String toUpperCase()
public String toUpperCase(Locale locale)

String str1 = "Hello World!";
String str2 = str1.toLowerCase();
String str3 = str1.toUpperCase();

System.out.println(str1); //Hello World! //기존 값은 변경 안됩니다.
System.out.println(str2); //hello world!
System.out.println(str3); //HELLO WORLD!

String.substring()

substring(int start, int end)

start(포함) ~ end(미포함)까지의 문자열을 반환합니다.

// beginIndex ~ 문자열 끝까지
public String substring(int beginIndex)
// beging(포함) ~ end(미포함)
public String substring(int beginIndex, int endIndex)

String str1 = "Hello World!";
String str2 = str1.substring(0, 4);

System.out.println(str1); //Hello World!
System.out.println(str2); //Hello Wo

StringBuffer, StringBuilder 내장함수(메소드) 자세히

StringBuffer(StringBuilder).append()

문자열 추가하기

public StringBuffer append(Object obj)
public StringBuffer append(String str)
public StringBuffer append(StringBuffer sb)
public StringBuffer append(CharSequence s)
public StringBuffer append(CharSequence s, int start, int end)
public StringBuffer append(char[] str)
public StringBuffer append(char[] str, int offset, int len)
public StringBuffer append(boolean b)
public StringBuffer append(char c)
public StringBuffer append(int i)

StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();

sb1.append("a");
sb1.append("pple");
sb1.append(2);
sb1.append('개');
sb1.append(' ');
sb1.append(true);

System.out.println(sb1); //apple2개 true

char[] chars = {'a', 'p', 'p', 'l', 'e'};
sb2.append(chars, 2, 2);

System.out.println(sb2); //pl

StringBuffer(StringBuilder).insert()

문자를 삽입하기 원하는 인덱스에 문자열을 삽입합니다.

public StringBuffer insert(int offset, boolean b)
public StringBuffer insert(int offset, char ch)
public StringBuffer insert(int offsetchar[] sarr)
public StringBuffer insert(int offset, char[]str, int index, int len)
public StringBuffer insert(int offset, double d)
public StringBuffer insert(int offset, float f)
public StringBuffer insert(int offset, int i)
public StringBuffer insert(int offset, long l)
public StringBuffer insert(int offset, String str)
public StringBuffer insert(int offset, Object obj)

StringBuilder sb1 = new StringBuilder("사과 바나나 수박");

sb1.insert(3, "원숭이 ");

System.out.println(sb1); //사과 원숭이 바나나 수박

StringBuffer(StringBuilder).delete()

delete(int start, int end);

start(포함) ~ end(미포함)까지 문자열을 삭제합니다.

public StringBuffer delete(int start, int end)

StringBuilder sb1 = new StringBuilder("사과 바나나 수박");
sb1.delete(3, 5);

System.out.println(sb1); //사과 나 수박

StringBuffer(StringBuilder).replace()

String의 내장함수 replace는 변경하고 싶은 문자열을 이용하여 변경하지만, StringBuffer(StringBuilder)는 변경하고 싶은 구간(index)을 이용하여 변경합니다.

 

replace(int start, int end, String str)

strat(포함) ~ end(미포함)까지의 구간을 str 문자열로 변경해 줍니다.

public StringBuffer replace(int start, int end, String str)

StringBuilder sb1 = new StringBuilder("사과 바나나 수박");
sb1.replace(3, 6, "원숭이가 좋아하는 banana");

System.out.println(sb1); // 사과 원숭이가 좋아하는 banana 수박

StringBuffer(StringBuilder).toString()

같은 문자열 내용을 갖는 String 객체로 반환하는 메서드를 제공합니다.

public String toString()

StringBuilder sb1 = new StringBuilder("사과 바나나 수박");

System.out.println(sb1.equals("사과 바나나 수박")); //false
System.out.println(sb1.toString().equals("사과 바나나 수박")); //true
728x90