Java-String method에 대하여

SeoSangwon·2023년 4월 19일
2

JAVA

목록 보기
1/4

Python언어는 접해 보았지만 Java를 처음 배우는 사람들이 많을 것 이라고 생가한다. 나또한, Java에 관하여는 Android Studio조금 해본 정도로 Java에 대해 무지한 상태로, 기본 문법 강의를 듣고 핵심 내용을 요약해보려고 한다.


new - 생성자

  • 생성자는 new 연산자로, 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당한다.
    // 생성자
    String str1 = String("Hello World"); 
    String str2 = new String("Hello World"); // 생성자
    String str3 = new String("Hello World"); // 생성자 
  • 생성자의 경우, 생성 할 때 마다 새로운 주소값을 생성하게 된다. 따라서 생성자를 통해 만들어진 객체 비교 시, 주소값을 통해 비교한다.

equals

  • equals 메소드는 주소값을 비교하는 것 이 아닌, 문자열 리터럴이 같은지 비교를 한다.
    // equals
    System.out.println(str2 == str3); // false
    System.out.println(st2.equals(str3)); // true
    • 위의 코드를 보면 첫번째 str2==str3 은 주소값을 비교하고, 주소값이 다르기 때문에 false로 나오고, equals 메소드를 사용하게되면 주소값이 아닌 리터럴 자체를 비교하기 때문에 true를 반환하게 된다.

indexOf

  • String에서 indexOf 메소드에서, 인자로 찾을 문자열이나 문자를 넣으면 최초로 발견되는 인덱스를 반환하게 된다.
    // indexOf - indexing
    String str = "Hello World"; 
    // 최초로 발견되는 인덱스 반환
    System.out.println(str.indexOf("l"));  // 2
    System.out.println(str.indexOf("World"));  // 6
    // 없을 때
    System.out.println(str.indexOf("JAVA"));  // -1

contains

  • contains 메소드는 문자열안에 특정 문자 혹은 문자열이 존재하는지 알고자 할때 사용되는 메소드로,A.contain(B) 로 사용되고, 있으면 true, 없으면 false를 반환한다.
    // contains
    System.out.println(str.contains("Hello"));  // true;
    System.out.println(str.contains("JAVA")); // false;

charAt

  • Python과 달리, Java에서는 인덱싱을 통한 문자 반환을 charAt이라는 메소드로, A.charAt(index) 로 사용 되고, 인덱스에 해당하는 문자를 return한다.
    // charAt
    System.out.println(str7.charAt(0)); // H;
    System.out.println(str7.charAt(1)); // e;
    System.out.println(str7.charAt(2)); // l;
    System.out.println(str7.charAt(3)); // l;

replace, replaceAll

  • replace와 replaceAll 메소드는 모두 문자열에서 특정 문자 혹은 문자열을 검색하고, 대체하는 메소드이다. 하지만 둘 사이에는 명확한 차이점이 존재한다.
    • replace() : replace() 메서드는 문자열에서 특정 문자열을 찾아 다른 문자열로 바꾼다. 이 때, 바뀔 문자열이 일치하는 첫 번째 문자열만 바뀌게 된다.
      // replace
      String str = "hello world";
      str = str.replace("world", "Java");
      System.out.println(str);  // Hello Java;
      • 위의 코드는 문자열 "hello world"에서 "world"를 "Java"로 바꾸어 "hello Java"를 출력한다.
    • replaceAll() : replaceAll() 메서드는 정규 표현식으로 일치하는 모든 문자열을 찾아 다른 문자열로 바꿔준다.
      String str = "hello world";
      str = str.replaceAll("l", "x");
      System.out.println(str); // hexxo worxd
      • 위의 코드는 문자열 "hello world"에서 "l"이라는 문자열을 모두 "x"로 바꾸어 "hexxo worxd"를 출력합니다.

substring(sub-string) 슬라이싱

  • substring 메소드는 슬라이싱을 할때 사용되는 메소드로, A.substring(start,finish) 로 사용되고, start 인덱스부터 finish-1 까지의 문자를 return 한다
    // substring
    String str = "Hello JAVA";
    System.out.println(str9.substring(str.length()-2,str.length())); // VA
    • 위의 코드는 Hello JAVA 라는 문자열에서 문자열 길이-2 부터 마지막 문자까지를 출력하는 코드로, VA를 출력하게 된다.

upper,lower

  • Java에서 문자열을 모두 대문자 혹은 소문자로 변환하기 위해서는 String.toUpperCase(), String.toLowerCase() 메소드를 사용한다.
    String str10 = "Stop Hello";
    System.out.println(str10.toUpperCase());  // STOP HELLO
    System.out.println(str10.toLowerCase());  // stop hello

split

  • split은 특정 문자를 기준으로, 나누는 메소드로, A.split(dep) 으로 사용된다.
    String split = "a:b:c:d";
    String[] result = split.split(":");
    System.out.println(Arrays.toString(result));
    • 위의 코드를 실행하게 되면 [a, b, c, d]를 출력 하게 된다.

Formatting

  • String Formatting은 문자열안에서 가변변수를 나타내고 싶을때 사용되는 메소드로, 정수형은 %d, 문자열은 %s, 실수형은 %.f등 으로 나타 낼 수 있다.
    // Formatting
    System.out.println(String.format("나의 오늘 %d걸음을 걸었다",5000));
    System.out.println(String.format("나는 오늘 %s를 먹었다","닭갈비"));
    System.out.println(MessageFormat.format("My name is {0}","Hgd"));
    System.out.println(String.format("내이름은 %s,나이는 %d","Hgd",24));

0개의 댓글