Java

자바의 신 ch15 String

langsamUndStetig 2022. 5. 11. 19:36

 


public class UseStringMethods {
  public static void main(String[] args) {
    UseStringMethods sample = new UseStringMethods();
    String str = "The String class represents character strings.";
    sample.printWords(str);
    sample.findString(str, "string");
    sample.findAnyCaseString(str, "string");
    sample.countChar(str, 's');
    sample.printContainWords(str, "ss");
  }

public void printWords(String str) {
    //JAVA API DOCUMENT에서 String 타입 배열이어서 이렇게 사용함.
    String[] arrays = str.split(" ");
    for (String array:arrays) {
      System.out.println(array);
    }
}

public void findString(String str, String findStr) {
  // indexOf 같은 경우는 몇번째에 위치하는지 알려주는 것이어서 int타입으로 받음.
    int x = str.indexOf(findStr);
    System.out.println(findStr + " is appeared at " + x);
}

public void findAnyCaseString(String str, String findStr) {
    //처음엔 str = str.toLowerCase()로 나눠서 했는데, 생각해보니 아래처럼 하는게 더 나을듯 해서 바꿈.
    int x = str.toLowerCase().indexOf(findStr);
    System.out.println(findStr + " is appeared at " + x);
}
public void countChar(String str, char c) {
    // char c 가 포함된 경우에만 숫자가 증가해야하기 때문에 int countNum을 만들어서 명시적 초기화를 해줬고
    // toCharArray 는 char타입 배열로 받아주고
    // for문울 사용해서 배열의 요소와 char c 가 같은지 확인하고, 같으면 countNum+1;
    int countNum = 0;
    char[] characters = str.toCharArray();
    for(char character:characters) {
      if(character == c) {
        countNum++;
      }
    }
  System.out.println("char '"+c+"' count is " + countNum);
}
public void printContainWords(String str, String findStr) {
    // contains()는 boolean 메소드여서 true가 나올경우만 아래 문장이 나오도록 했음
  String[] arrays = str.split(" ");
  for(String array:arrays) {
    if(array.contains(findStr)){
      System.out.println(array + " contains " + findStr);
    }
  }

}
}

출력값