본문 바로가기

Programming Language/JAVA

[JAVA] String 클래스 & 메소드

 

● Java.lang.String
: String 클래스에는 문자열과 관련된 작업을 할 때 유용하게 사용할 수 있는 다양한 메소드가 포함되어있다.

 

 

import java.util.Scanner;

	public class Quiz {

		public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str;
		System.out.print("문자열 입력: ");
		str = sc.next();
		System.out.println("입력 받은 문자열 : "+str);
		}
}

* String 클래스 설명
위 소스는 아마 이전에도 많이 사용했던 코드이기에 이해하기 쉬울거라고 생각합니다.
단순하게 String 데이터타입인 str변수를 선언해주고, 문자열을 입력받아줍니다.
사용자로부터 입력받은 문장을 str변수에 담아주고 그값을 그냥 출력해줍니다.

 

 

 

 

import java.util.Scanner;

	public class Quiz {

		public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = new String();
		System.out.print("문자열 입력: ");
		str = sc.next();
		System.out.println("입력 받은 문자열 : "+str);
		}
}

* String 클래스 설명

 

이번에는 이전 예제와 약간 다른걸 확인하실수있습니다.
우선, 기존에는 String데이터타입으로 str변수를 선언만해주고 그변수에 입력받은 값을 저장해줬다면,
이번에는 new연산자를 통해서 객체를 생성해줍니다. String클래스에 다양한 메소드가 들어있습니다.
str객체에 사용자로부터 입력받은 수를 저장해줍니다.
똑같이 출력해줍니다. 
이해가 아직 안되신다면 더 아래 소스에서 다뤄보겠습니다!
( 아마 제 블로그를 순서대로 보셨다면 이해하기 힘드실수있지만," JAVA란?"편에서 설명드렸듯이 자바는 객체 지향언어이기에 객체들로 이루어져있습니다. 그리고 나중에 객체,클래스,메소드에 대해 설명을 드리겠습니다. )

 

 

 

 

 

public class Test01 {

	public static void main(String[] args) {
		String str = new String("Java is Easy.그리고 programming 할만하다");
		System.out.println("기본 : "+str);
		String changeStr = new String();
		changeStr = str.toUpperCase();
		System.out.println("변환 후 : "+changeStr);
		changeStr = str.toLowerCase();
		System.out.println("변환 후 : "+changeStr);
		
		System.out.println(str);
		System.out.println(changeStr);
	}

}

우선 String클래스를 new연산자를 통해 str객체로 만들어줍니다.
괄호를 통해서 만들때 ""안에 파라미터값을 넘겨주면서 str객체를 초기화해줍니다.
즉, str객체는 "Java is Easy.그리고 programming 할만하다" 라는 문구를 가지고 태어납니다.
그값을 그대로 출력해줍니다.
이번에는 changeStr객체를 생성해줍니다. changeStr객체에는 이전에 만들었던 str객체안에 있는 toUpperCase메소드(기능으로 우선 이해하시는게 편하실겁니다 ㅠㅠ)을 통해서 소문자의 알파벳을 대문자로 변환시켜줍니다. toUpperCase메소드는 java를 처음 만들때부터 하나의 기능으로 만들어져있던것입니다!
그렇기때문에 toUpperCase메소드를 사용하면 대문자로 변환시켜줍니다. 
대문자로 변환된값을 changeStr안에 넣어줍니다.
그값을 메시지로 출력해줍니다. 이번에는 changeStr 객체에 toLowerCase메소드를 통해 대문자를 소문자로 바꿔줍니다. 이것또한 기능입니다. ( 외우시는걸 추천드립니다! )
똑같이 메시지로 출력해줍니다.

 

 

 

 

 

 

public class Test02 {
	public static void main(String[] args) {
		String str = new String("abcdefg");
		System.out.println(str.length());
		System.out.println(str.charAt(1));  
		String addStr;
		addStr = "a";	//String타입이기에 작은따옴표가아닌 큰따옴표로 묶어줘야함
		System.out.println(addStr);
		addStr+="b";
		System.out.println(addStr);
		System.out.println(str.charAt(0)=='a');
		System.out.println(str.charAt(0)=='c');
		System.out.println(str.charAt(0)-32);
		System.out.println((char)(str.charAt(0)-32));
		System.out.println(str);
	}

}

이번에도 메소드에대해 알아보겠습니다.

 

str객체를" abcdefg"파라미터값을 넣어주고 이값을 들고나서 태어나게해줍니다.
str안에있는 length메소드를 호출해서 메시지로 출력해봅니다.
abcdefg는 7글자이기에 7이 출력됩니다.
str안에있는 charAt메소드를 호출해주고 파라미터값으로 1을 보내줍니다. ( 메소드나, 객체 괄호안에 들어가는 값을 파라미터값이라고 합니다. )
현재 abcdefg안에서 a=0 / b=1 / c=2 .......... g=7 이기에 1을 넘겨주면 b가 출력됩니다.
이번에는 addStr변수를 선언해주고 a를 저장해줍니다. 그리고나서 출력해줍니다. 
이번에는 addStr변수에 b를 더해줍니다. 즉 현재 addStr에는 ab가 들어있습니다. 그값을 출력해줍니다.
str객체안에 charAt메소드에 0을 파라미터로 넘겨줍니다. 현재 charAt에는 abcdefg가 들어있고 앞서말씀드렸듯이 0인자에는 a가 들어있습니다. a와 ==같은지 비교해주고 그값을 메시지로 출력했기에 true로써 참이되고 출력됩니다.
이번에는 0인자가 c와같은지 비교해주고 boolean타입으로 출력해줍니다. 거짓이기에 false가 출력됩니다.
0인자인 a가 아스키코드로 97이기에 -32를 해주면 65가 출력됩니다.
65를 (char)로 형변환시켜주고 65의 아스키코드를 갖는 값은 A이기에 A가 출력됩니다.
그리고 마지막으로 str객체를 출력하면서 값이 변동이없는걸 확인하실수있습니다.