[Java]String

박진우·2022년 9월 9일
0

[Java]자바의 기초

목록 보기
8/16

String

  1. 메모리에서 사용하는 데이터 크기가 가변적인 특징이 있다.
    -실제 데이터를 힙메모리에 저장하고, Strint타입으로 선언된 변수에는 힙 메모리의 주소값을 스택에 저장
  2. 실제 사용 예: 고객이름, 주소 ,직업,회사명,상품명,등
  3. 산술연산 기호중 '+'만 사용 가능 => 문자열 합치기
    -문자열 + 문자열 , 숫자 + 문자열 , 문자열 + 숫자 -> (가능)
public class StringBasic {
	
	public static void main(String[] args) {
		String message1= "안녕하세요 자바입니다.";
		//변수 message에는 힙 메모리에 저장된 "안녕하세요 자바입니다."의 
        //데이터의 시작 주소값을 갖고 있다는 의미이다
		String message2 = "좋은 아침입니다.";
		String message3;
		
		System.out.println(message1);
		System.out.println(message2);
		message3 = message1 + " " + message2;
		System.out.println(message3);

//		2+3+message1 => 5+ 안녕하세요 자바입니다. =>"5"(문자열로 형변환)+"안녕하세요 자바입니다"
		message2 = 2 + 3 + message1;
		System.out.println(message2);
		
//		문자열이 앞으로와 뒤의 정수 타입이 문자열로 바뀌게 됨
//		따라서 안녕하세요 자바입니다 23으로 출력
		message3 = message1+2+3;
		System.out.println(message3);
		
		int a = 10;
		System.out.println("a = " +a);
	}
}

String.lenghth()

문자데이터의 길이를 구할수 있다.
1.한글과 영어 글자 1문자를 length에서는 1개로 인식
-한글과 영어 글자는 unicode로 구성되어 있음

public class StringBasic {
	public static void main(String[] args) {
		String message = "Welcome to Java";
		String message2 = "안녕하세요 , 자바씨";
		
		System.out.println(message + "변수의 문자 길이 = "+message.length());
       //문자열의 길이는 15이다.
		System.out.println(message2 + "변수의 문자 길이 = "+message2.length());
		//문자열의 길이는 11이다
	}
}

String.charAt(index)

문자열에서 특정 문자를 가져올 수 있다.
index = 0일때 첫번째 문자를 가져옴
intdex = lenght - 1 일때 마지막 문자를 가져옴

public class StringBasic {
	
	public static void main(String[] args) {
		String message = "Welcome to Java";
		
        //'W'를 출력한다
		System.out.println(message.charAt(0));
        //'a'를 출력한다
		System.out.println(message.charAt(message.length()-1));

	}
}

concat

문자열을 합칠 수 있다.
-concat = concatenate

public class StringBasic {
	
	public static void main(String[] args) {
		String s1 = "Welcome to ";
		String s2 = "Java";
		String s3;
		
		s3 = s1.concat(s2);
        //'Welcome to Java'을 출력한다
		System.out.println("s3 = "+ s3);
		

	}
}

문자열을 콘솔에서 읽을 시

문자열을 콘솔에서 읽기
1.next() = 스페이스로 구분된 문자열을 읽어올 때 사용
2.nextLine() = 한줄 전체를 문자열로 읽어올 때 사용

public class StringBasic {
	
	public static void main(String[] args) {
		Scanner S = new Scanner(System.in);
	
		System.out.println("space로 구분된 3개의 단어를 입력하세요");
		String s1 = S.next();
		String s2 = S.next();
		String s3 = S.next();
		
		System.out.println("s1 = " + s1);
		System.out.println("s2 = " + s2);
		System.out.println("s3 = " + s3);
		

		
		System.out.println("다음 한 줄을 입력하고 enter key를 누르세요");
		String s4 = S.nextLine(); //1 라인 전체 문자를 읽어 올 때 사용(s4에는 엔터키 문자는 제외됨)
		System.out.println("s4 = " + s4);

	}
}

compareTo

  1. s1과 s2의 문자열을 알파벳 순서로 비교하는데 첫번째 문자부터 비교함
  2. compoareTo 메소드의 실행 결과
    -s1의 문자열 > s2의 문자열 => 양수의 값을 return
    -s1의 문자열 < s2의 문자열 => 음수의 값을 return
    -s1의 문자열 == s2의 문자열 => 0 값을 return
public class StringBasic {
	
	public static void main(String[] args) {
		String s1 = "apple";
		String s2 = "banana";
		String s3 = "pineapple";
		String s4 = "banana";
      
		System.out.println(s1+"과"+s2+"의 크기비교 : "+s1.compareTo(s2));
       
		System.out.println(s1+"과"+s3+"의 크기비교 : "+s1.compareTo(s3));
       
		System.out.println(s2+"과"+s1+"의 크기비교 : "+s2.compareTo(s1));
        
		System.out.println(s2+"과"+s4+"의 크기비교 : "+s2.compareTo(s4));
		//각각 -1 -15 1 0 을 출력한다
	}
}

String.substring

전체 문자열에서 일부 문자열 가져오기 : substring (startIndex,endIndex)
1. startIndex = 0부터 시작, 일부 문자열 가져오기에 포함
2. endIndex는 일부 문자열 가져오기에 불포함됨
-(endIndex-1 의 문자까지만 가져옴)
3. startIndex 값은 있고 endIndex값이 없는 경우
-startIndex부터 문자열 끝까지의 데이터를 가저옴
- ex)substring(0);

public class StringBasic {
	
	public static void main(String[] args) {
		String mes = "Welcome to Java";
		String test = "el";
		//'Welco'을 출력함
		System.out.println(mes.substring(0,5));
        //'lcome to Java'을 출력함
        System.out.println(mes.substring(2));
        	}
}

String.indexOf

문자열에서 찾고자 하는 문자 또는 문자열의 시작 index 가져오기
1. indexOf(char 또는 String, startIndex)
-startIndex부터 시작하여 찾고자하는 문자나 문자열이 있으면 시작 index를 가져옴
-단 startIndex가 주어지지 않으면 startIndex는 0부터 시작한다고 가정함
-만일 찾고자 하는 문자나 문자열이 없으면 -1을 return
-문자나 문자열을 찾을 때 대소문자 구분하여 찾음
2. lastIndexOf : 문자열의 마지막 index부터 시작하여 찾음

public class StringBasic {
	
	public static void main(String[] args) {
    //각각 0 , 4 를 출력
	System.out.println("Welcome to Java".indexOf('W'));
		System.out.println("Welcome to Java".indexOf('o'));
        //comet 문자열을 찾지 못했기 때문에 -1 을 출력
        System.out.println("Welcome to Java".lastIndexOf("comet"));
        	}

}

String.replace

문자열 내부에서 특정 문자를 다른 문자로 바꾸기 : replace
1. replace(oldChar , newChar)
-문자열 내에서 oldChar 을 newChar로 바꿔줌


public class StringBasic {
	
	public static void main(String[] args) {
		String s1 = "apple";
		// p를 a로 바꿔 'aaale'로 출력
		System.out.println(s1.replace('p', 'a'));
	}
}
profile
개발자를 꿈꾸는 사람입니다

0개의 댓글