2020.09.24 자바프로그래밍 기초 수업노트- StringClass

 package i_api;


import java.util.Arrays;


public class StringClass {


public static void main(String[] args) {

// TODO Auto-generated method stub


/*

* String 

* 여러개의 문자를 사용하기 쉽게 만들어 놓은 클래스

* (문자배열을 사용하기 쉽게 만들어 놓음 ) 

* String 의 주요 메서드 

* - equals() : 문자열의 내용이 같은지 반환한다. 

* - length() : 문자열의 길이를 반환한다. 

* - charAt(인덱스파라미터입력) : 특정 인덱스에 위치한 문자를 반환한다. 

* - substring(인덱스 2개를 파라미터로 넘김) : 문자열의 특정부분을 잘라서 반환한다. 

* - indexOf() : 문자열 내의 특정 문자의 인덱스를 반환한다. 

* - contains() : 문자열이 특정 문자열을 포함하고 있는지 반환한다. 

* - split() : 문자열을 특정 문자를 기준으로 나누어 배열 형태로 반환한다. 

* - trim() : 문자열 앞뒤의 공백을 제거해 반환한다. 

* - valueOf() : 다른 타입의 데이터를 문자열로 변환해 반환한다. 

* - replace() : 문자열 내의 특정 문자를 다른 문자로 변경한다. 


* api : 어떤 기능을 사용하기 쉽게 -> 간편하게 갖다 쓸 수 있게 

*/

//실제로 사용해보자 

boolean equals = "문자열".equals("문자열"); 

//==으로 비교를 하게되면 문자열을 비교하는게 아니라 문자열이 저장된 주소를 보는것

System.out.println(equals);

//주의할점 : 왼쪽에 있는 문자열을 참조하는것 왼쪽은 null이면 안됨 오른쪽문자열은 null이어도되

String str1 = "문자열"; 

String str2 = null; 

System.out.println(str1.equals(str2));

   //1번에서 equals 를 호출해서 str2를 비교하는것

//System.out.println(str2.equals(str1));

//NULL에서는 equals를 불러올 수 없다. 오류가 만들어짐 

// null 이 있을 수 있는 변수를 앞에 두지 않는다. 

String str = "12345"; 

int length = str.length(); 

for(int i = 0 ; i < length ; i++){

char charAt = str.charAt(i);

System.out.println(charAt); 

            //i 는 인덱스다. i 가 0,1,2,3,4, -> 반환되는건 1,2,3,4,5 (str의 ) 

}

//문자열 뒤집기 

String rev = ""; 

    for(int i = str.length() - 1 ; 0 <= i ; i-- ){ 

    rev += str.charAt(i);

   

    }

    System.out.println(rev); 

    

    str = "0123456789"; 

    String sub1 = str.substring(3); // 3번 인덱스부터 잘라서 반환한다. 

    System.out.println(sub1); 

    

    

    String sub2 = str.substring(5,8) ; 

    // 5번 인덱스부터 8번 인덱스 전까지 잘라서 반환한다. 

    System.out.println(sub2) ; 

   

    

   str = "수박 오렌지 귤 블루베리"; 

   int index = str.indexOf("오렌지"); //오렌지의 시작 인덱스를 반환한다. 

   System.out.println(index); 

   

   //substring 과 indexOf 는 같이 사용하는 경우가 많다. 

//substring 과 indexOf를 조합해서 문자열 자르기 

   String[] menu = { 

   "수박 2000원", 

   "오렌지 100000원",

   "귤 500원", 

   "블루베리 3000원"

   };

   for(int i = 0 ; i < menu.length; i++){ 

String name = menu[i].substring(0, menu[i].indexOf(" ")); 

   System.out.println(name);

     

   

   

   String num = menu[i].substring(menu[i].indexOf(" ") + 1 , menu[i].indexOf("원"));

   System.out.println( Integer.parseInt(num));

   // Integer.parseInt() 괄호 안에는 문자열들이 들어가면 안됨. 

   }

   

   

   str = "abcd" ; 

   str.contains("c"); 

   //"괄호에 있는 애가 str에 포함되어 있는지 아닌지를 알려줌"

   boolean contains = str.contains("c"); 

   System.out.println(contains); 

   

   //오렌지가 메뉴의 몇번 인덱스에 있는지 찾기 

   for ( int i = 0 ; i < menu.length; i++){

   if(menu[i].contains("오렌지")) { 

   System.out.println("오렌지는 " + i + " 번 인덱스에 있습니다."); 

   }

   

   }

  str = "a/b/c"; 

  str.split("/"); 

   // /로 나눠진 a,b,c 를 string 타입의 배열로 반환을 해준다. 

  String[] split = str.split("/"); 

  System.out.println(Arrays.toString(split)); 

  

   

  

  for ( int i = 0 ; i < menu.length; i++){ 

String[] m =  menu[i].split(" "); 

System.out.println("메뉴명 : " + m[0] + "/ 가격 : " + m[1]);

  }

  str = " 문자열 "; 

  str.trim(); 

      String trim = str.trim(); 

      System.out.println("[" + str + "] -> [" + trim + "]"); 

      

  //사용자가 입력하는데 실수하는 것을 방지해준다.

      //사용자의 실수로 아이디나 비밀번호 앞뒤에 공백이 들어가는 것을 방지하기 위해 사용할 수 있다. 

      

      String id = " myid"; 

      String password = "mypassword "; 

      System.out.println(id); 

      System.out.println(password); 

      System.out.println(id.trim()); 

      System.out.println(password.trim()); 

      

      //1.

      int number = 10; 

      str = number + ""; //(문자열을 만나게 되면 무조건 문자열이되니까.) 

//2. 좋은 방법은 메서드를 사용하는것. 

      str = String.valueOf(number); 

     

      str = "123456789"; 

      str = str.replace("3" , "짝"); 

      System.out.println(str); 

      

      str = str.replace("6", "짝" ) ; 

      str = str.replace("9", "짝" ) ; 

      System.out.println(str); 

      //전부다 다 바꿔줌 

      

      

      str = "banana" ; 

      str = str.replace("a", "new"); 

      System.out.println(str); 

      

      

      

      

      

      

      

      

      

      

}


}


댓글