본문 바로가기

Java

[Java] 27

String 클래스

1. length(문자열)

- 해당 문자열의 길이(int)를 return

2. charAt(인덱스)

- 해당 위치의 문자(char)를 return

3. indexOf(문자열)

- 해당 문자열의 인덱스(int)를 return

4. substring(인덱스)

- 해당 인덱스부터 끝까지 자른 문자열(String)을 return

5. split(문자열)

- 해당 문자열로 자른 String[] 을 return

6. join(연결 문자열, 배열) (static 메소드)

- 해당 배열을 연결 문자열로 연결한 하나의 String을 return

 

 


 

 

실습(String 클래스 메소드)

1. length(문자열)

public class StringTest {
	public static void main(String[] args) {
		
		String msg = "hello everyone nice to meet you";

		System.out.println(msg.length());

	}
}

 

결과

 

2. charAt(인덱스)

public class StringTest {
	public static void main(String[] args) {
		
		String msg = "hello everyone nice to meet you";

		System.out.println(msg.charAt(4));

	}
}

 

결과

 

3. indexOf(문자열)

public class StringTest {
	public static void main(String[] args) {
		
		String msg = "hello everyone nice to meet you";

		// indexOf(값) : 해당 문자열에서 값의 위치 인덱스를 return
		System.out.println(msg.indexOf("e"));  // 중복된 값이 존재하는 경우 맨 처음 값의 인덱스 출력
		System.out.println(msg.indexOf("me")); 
		System.out.println(msg.indexOf("안녕"));  // 값이 존재하지 않을 경우 -1 출력
		
		// indexOf(값, 인덱스) : 해당 문자열에서 인덱스부터 값을 찾아 인덱스 번호를 return
		System.out.println(msg.indexOf("e", 1));
		
	}
}

 

결과

 

4. substring(인덱스)

public class StringTest {
	public static void main(String[] args) {
		
		String msg = "hello everyone nice to meet you";
		
		// substring(인덱스번호) : 해당 인덱스부터 끝까지 자른 String을 return
		System.out.println(msg.substring(6));
		
	}
}

 

결과

 

 

​​

5. split(문자열)

public class StringTest {
	public static void main(String[] args) {
		
		String msg = "hello everyone nice to meet you";

		// split(값)
		String[] temp = msg.split(" ");

		for(int i = 0; i < temp.length; i++) {
			System.out.println(temp[i]);
		}
		
	}
}

 

결과

 

6. join(연결 문자열, 배열)

public class StringTest {
	public static void main(String[] args) {
		
		String msg = "hello everyone nice to meet you";
		String[] temp = msg.split(" ");
		
		// join(값, 배열) : String 클래스 안에 있는 static 메소드
		System.out.println(String.join("안녕", temp));
		
	}
}

 

결과

 

​​

실습(String 클래스)

1. 암호화 및 복호화

import java.util.Scanner;

public class StringTask {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		final int KEY = 3;
		System.out.print("비밀번호 입력 >> ");
		String pw = sc.nextLine();
		
		String en_pw = "";
		for(int i = 0; i < pw.length(); i++) {
			en_pw += (char)(pw.charAt(i) * KEY);
		}
		System.out.println("암호화된 pw : " + en_pw);
		
		
		// 암호화된 en_pw를 다시 복호화하여 출력하기
		String de_pw = "";
		for(int i = 0; i < en_pw.length(); i++) {
			de_pw += (char)(en_pw.charAt(i) / KEY);
		}
		System.out.println("복호화된 pw : " + de_pw);

	}
}

 

결과

 

 

2. 사용자에게 문자열을 입력 받아 소문자는 대문자로, 대문자는 소문자로, 그 외의 문자는 그대로 변경하여 출력하기

import java.util.Scanner;

public class StringTask {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);

		System.out.print("입력 >> ");
		String input1 = sc.nextLine();
		String res1 = "";
		for(int i = 0; i < input1.length(); i++) {
			char ch = input1.charAt(i);
			if(ch >= 'A' && ch <= 'Z') {  // 대문자일 때
				res1 += (char)(ch + 32);  // 소문자로 바꾸기
			} else if(ch >= 'a' && ch <= 'z') {  // 소문자일 때
				res1 += (char)(ch - 32);  // 대문자로 바꾸기
			} else {  // 대문자도 아니고, 소문자도 아닐 때
				res1 += ch;  // 그대로
			}
		}
		System.out.println("결과 >> "  + res1);
		
	}
}

 

결과

 

 

​​

3. 사용자에게 문자열을 입력 받아 두번째 o가 나오는 이후부터 끝까지 자른 문자열 출력하기

import java.util.Scanner;

public class StringTask {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);

		System.out.print("입력 >> ");
		String input2 = sc.nextLine();
		int first0 = input2.indexOf("o");  // 첫번째 o의 인덱스 번호
		int second0 = input2.indexOf("o", first0 + 1);
		String res2 = input2.substring(second0);
		
		System.out.println("결과 >> "  + res2);
		
	}
}

 

결과

 

4. 사용자에게 한줄로 콤마로 연결된 정보를 입력 받아 출력하기

- 입력 예시 : 홍길동, 20, 서울시 역삼동, 010-1234-5678

- 출력 예시 :

이름 : 홍길동

2년 후 나이 : 20

주소 : 서울시 역삼동

휴대폰번호 : 010-1234-5678

import java.util.Scanner;

public class StringTask {
	public static void main(String[] args) {
	
		Scanner sc = new Scanner(System.in);
		
		System.out.print("정보 입력 >> ");
		String input3 = sc.nextLine();
		String[] ar = input3.split(", ");
		String[] header = {"이름", "2년 후 나이", "주소", "휴대폰번호"};
		ar[1] = Integer.parseInt(ar[1]) + 2 + "";
		ar[3] = String.join("", ar[3].split("-"));

		for(int i = 0; i < ar.length; i++) {
			System.out.println(header[i] + " : " + ar[i]);
		}
		
	}
}

 

결과

 

5. 사용자에게 한글로 숫자를 입력 받아 숫자로 출력하기

- 입력 예시 : 일이삼사

- 출력 예시 : 1234

import java.util.Scanner;

public class StringTask {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
	
		System.out.print("한글 입력 >> ");
		String input4 = sc.nextLine();
		String hangeul = "공일이삼사오육칠팔구";
		String res3 = "";

		for(int i = 0; i < input4.length(); i++) {
			res3 += hangeul.indexOf(input4.charAt(i));
		}

		System.out.println(res3);
		
	}
}

 

결과

 

 

'Java' 카테고리의 다른 글

[Java] 29  (0) 2022.01.30
[Java] 28  (0) 2022.01.29
[Java] 26  (0) 2022.01.26
[Java] 25  (0) 2022.01.25
[Java] 24  (0) 2022.01.24