1. String 예제 1번
package p01.basic;
// String data type
// 1. 메모리에서 사용하는 데이터 크기가 가변적인 것이 특징임
// -> 실제 데이터를 힙메모리에 저장하고, String Type으로 선언된 변수에는 힙메모리의 주소값을 갖고 있음
// 예를 들면, String message = "안녕하세요, 자바씨~~"; 인 경우,
// 변수 message에는 힙메모리에 저장된 "안녕하세요, 자바씨~~" 데이터의 시작 주소값을 갖고 있다는 의미임
// 2. 실제 사용 예 : 고객이름, 주소, 직업, 회사명, 상품명,....
// 3. 산술연산 기호 중에서 +만 사용 가능 => 문자열 합치기
// - 문자열 + 문자열 (ok), 숫자 + 문자열 (ok), 문자열 + 숫자 (ok)
public class StringBasic {
public static void main(String[] args) {
String message = "안녕하세요, 자바씨~~";
String message1 = "정말 좋은 아침입니다.";
String message2;
System.out.println(message);
System.out.println(message1);
message2 = message1 + "!!!" + message1;
System.out.println(message2);
// 2 + 3 + message => 5 +"안녕하세요, 자바씨~~"
message2 = 2 + 3 + message;
System.out.println(message2);
message2 = message + 2 + 3;
System.out.println(message2);
}
}
- String은 문자열을 사용할 때 많이 사용되는 코드입니다.
- 먼저 message 변수에 "안녕하세요, 자바씨~~"라는 문장를 넣어줍니다.
- message1에는 "정말 좋은 아침입니다."라는 문를 넣어줍니다.
- String은 숫자처럼 + 를 할 수 있어서, message2에 message + message1을 하면 두 문장이 합쳐집니다.
- 그리고 문자뿐만 아니라 특수문자나 숫자도 같이 계산할 수 있습니다.
- 위에 본 것 처럼 message2에 message + !!! + message1이라고 해주면 "정말 좋은 아침입니다.!!!정말 좋은 아침입니다."라는 문장이 출력됩니다.
2. String 문자 데이터 길이 구하기
package p01.basic;
// String 문자데이터의 길이 구하기 : length() 메소드 사용
// 1. 한글과 영어글자 1문자를 length에서는 1개로 인식
// - 한글, 영어글자는 unicode로 구성되어 있음
public class StringBasic2 {
public static void main(String[] args) {
String message = "Welcome to Java";
String message2 = "안녕하세요, 자바씨!!";
System.out.println(message + "변수의 문자 길이 = " + message.length());
System.out.println(message2 + "변수의 문자 길이 = " + message2.length());
}
}
- lenght()라는 메소드는 데이터의 길이를 구하는 메소드입니다.
- 한글과 영어 1문자를 1개로 인식합니다.
- message 변수에 "Welcome to Java"라는 문장이 있는데 이것을 length() 메소드를 써보면
- 공백까지 포함하여 15개라는 결과가 나옵니다.
3. 문자열에서 특정 문자를 가져오는 charAt(index) 메소드
package p01.basic;
// 문자열에서 특정 문자를 가져오는 방법 - charAt(index) 메소드 사용
// index가 0일 때 첫번째 문자를 가리킴, index가 length(문자열 전체 길이)-1 일때 마지막 문자를 가리킴
public class StringBasic3 {
public static void main(String[] args) {
String message = "Welcome to Java";
int length = message.length();
char firstChar = message.charAt(0);
char thirdChar = message.charAt(2);
char lastChar = message.charAt(length-1);
System.out.println(message + "의 첫번째 글자는 " + firstChar);
System.out.println(message + "의 두번째 글자는 " + thirdChar);
System.out.println(message + "의 세번째 글자는 " + lastChar);
System.out.println();
for (int i=0; i<message.length(); i++) {
System.out.println(message + "의" + (i+1) + "번째 글자는 " + message.charAt(i));
}
}
}
- 먼저 message라는 String 타입의 변수에 "Welcome to Java"를 넣어줍니다.
- 그리고 length라는 변수에 message의 데이터 길이의 값(message.length())을 넣어줍니다.
- 그 다음 charAt()를 사용하여 charAt(0)은 첫번째 글자, charAt(1)은 두번째 글자가 나오게 됩니다.
- 마지막에는 for 문을 이용하여 i는 0부터 massage의 길이인 15까지 반복하는 반복문을 만들어주면, 아래 사진과 같은 결과가 나오게 된다.
4. 문자열 합치기
package p01.basic;
// 문자열 합치기 : s1.concat(s2) => s1 + s2;
// -concat => concatenate
public class StringBasic4 {
public static void main(String[] args) {
String s1 = "Welcome to ";
String s2 = "Java";
String s3;
s3 = s1.concat(s2);
System.out.println("s3 = " + s3);
System.out.println("s1.length = " +s1.length());
System.out.println("s2.length = " +s2.length());
System.out.println("s3.length = " +s3.length());
s3 = s2.concat(s1);
System.out.println("s3 = " + s3);
s3 = s1 + s2;
System.out.println("s3 = " + s3);
s3 = s2 + s1;
System.out.println("s3 = " + s3);
}
}
- 먼저 문자열을 합치는경우도 간단하다.
- s1에 Welcome to라는 문자열을 넣어주고 s2에 Java라는 문자열을 넣어준다.
- 그 다음 s3라는 변수에 s1 + s2를 입력해주면 문자열이 합쳐진다.
- 다른 방법으로는 concat을 쓰는 방법인데 s3 = s1.concat(s2)라고 해주면 s3 = s1 + s2와 같은 뜻이 된다.
5. 문자를 console에 입력하고 대소문자로 나타내
package p01.basic;
// 문자열을 console에서 읽기
// 1. next() : space로 구분된 문자열(String)를 읽어올 때 사용
// 2. nextLine() : 1줄 전체를 문자열로 읽어올 때 사용
// 문자열을 대소문자 변환
// 1. 문자열의 모든 문자를 대문자로 변환: toUpperCase()
// 2. 문자열의 모든 문자를 소문자로 변환: toLowerCase()
// 1. next() : space로 구분된 문자열(String)를 읽어올 때 사용
//2. nextLine() : 1줄 전체를 문자열로 읽어올 때 사용
//문자열을 대소문자 변환
//1. 문자열의 모든 문자를 대문자로 변환: toUpperCase()
//2. 문자열의 모든 문자를 소문자로 변환: toLowerCase()
import java.util.Scanner;
public class StringBasic5 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// System.out.println("space로 구분된 3개의 단어를 입력하세요.");
// String s1 = input.next();
// String s2 = input.next();
// String s3 = input.next();
//
//
//
// System.out.println("s1 = " + s1);
// System.out.println("s2 = " + s2);
// System.out.println("s3 = " + s3);
//
// s3 = input.next(); // dummy 용
System.out.println("다음에 한 줄을 입력하고 enter key를 누르세요");
String s4 = input.nextLine(); // 1 line 전체 문자를 읽어올 때 사용(s4에는 enter key 문자는 제외됨)
System.out.println("s4 = " + s4);
System.out.println("s4 대문자 = " + s4.toUpperCase());
System.out.println("s4 소문자 = " + s4.toLowerCase());
}
}
- 먼저 직접 입력을 위해 scanner를 써준다.
- 문자열에서 모든 문자를 대문자로 바꾸기 위해서는 toUpperCase()를 사용해주고,
- 문자열에서 모든 문자를 소문자로 바꾸기 위해서는 toLowerCase()를 사용해준다.
- 예) s4라는 변수에 내가 입력할 값을 넣고 대문자로 바꾸기 위해서는 s4.toUpperCase()라고 써주면 된다.
오늘은 String 실습을 해보았습니다. 생각보다 양이 많아서 2편으로 나눠서 글을 쓰려고 합니다. String도 코딩을 하면서 많이 쓰이기 때문에 잘 공부해야될 것 같습니다.감사합니다.^^
반응형