[JAVA] 자바 - Stirng 클래스 Quiz 풀이 모음(1) ⭐⭐
by mini_min[JAVA]
자바 - Stirng 클래스
Quiz 풀이 모음
풀릴 땐 너무 좋은데... 수업들어도 이해 가는데 혼자 풀면 정말 아득해지는 문제풀이...ㅜㅜ
✔️ 정수를 입력 받아 정수의 길이 구하기
Scanner sc = new Scanner(System.in);
int n, len;
String a;
// 문자열로 받아서 길이 구하는 것이 합리적
// 정수 입력받기
System.out.println("정수 ? ");
n = sc.nextInt();
a = Stirng.format("%d", n);
len = a.length();
System.out.println(n + " : " + len + "자리 정수");
sc.close();
✔️ 수식을 받아 입력 받은 수식을 계산해서 출력
🏷️ 수식 예시) 3+5 (모두 양수인 경우로 가정)
//수식을 입력 받아 수식을 계산하여 출력,
부호는 입력 불가. (switch 로 선택할듯)
Scanner sc = new Scanner(System.in);
String s;
int n1 = 0;
int n1 = 0;
System.out.println("수식[3+4} ? ");
s = sc.nextLine();
//혹시나 있을 공백 모두 없애기
s = s.replaceAll("\\s", ""); //혹시 공백있으면 없애기
💡 해결해보기
- 일단 입력 받은 수식은 부호가 있기 때문에 문자열로 받아야할 것.
- 혹시 있을 공백 모두 없앤 순수한 문자열로 만들기
//만약, 사칙연산이 아닐 경우, 종료문 내고 종료하기
if(! s.matches("^\\d+[\\+|\\-|\\/|\\*]+\\d+$")) // \\d 는 1글자 이상
System.out.println("입력 형식 오류...");
sc.close();
return;
// 연산자 4가지를 만들어서 operator 배열 생성
// operator 가 있는 부분 위치 변수 생성
// Integer.ParseInt 로 String -> int 로 변환
for(String operator : new String[] {"+", "-", "/" , "*" })
int position = s.indexOf(operator);
if(position > 0) {
n1 = Integer.ParseInt(s.substring(0,positon));
n2 = Integer.ParseInt(s.substring(positon+1));
int result = 0;
switch(operator) {
case "+" : result = n1+n2; break;
case "-" : result = n1-n2; break;
case "*" : result = n1*n2; break;
case "/" : result = n1/n2; break;
💡 해결해보기
- 일단, 사칙연산이 문자열에 들어와서 matches 되지 않는 경우, 클래스 종료 선언문을 만든다.
- 이제 오류가 없는 경우, 연산자를 골라낸다. 연산자 배열 operator 를 생성한 뒤, operatro 위치 함수를 만든다.
operator 위치를 기점으로 문자열을 잘라서 int 형으로 변환해서 계산할 것이기 때문!
operator 함수의 위치 값을 도출해내는 식은 indexOf () 를 사용한다.
✔️ 점수를 입력 받아 1부터 입력받은 정수 한 줄에 10개씩 출력
출력할 수에 3, 6, 9는 개수만큼 *로 출력한다.
- replace 사용해야할듯, 스캐너, for로 10번 반복 후 줄 넘김
Scanner sc = new Scanner(System.in);
int n;
System.out.println("정수는 ? "); //끝값이 되는 정수
n = sc.nextInt();
String s;
for(int i=0; i<=n; i++) {
s = Integer.toString(i);
s = s.replace("3|6|9", "*");
}
//반대 경우 정리. 공백으로
if(s.indexOf("*") != -1)
s = s.replace("\\d", "");
System.out.printf("%5s", s);
if(i%10==0) {
System.out.println();
}
💡 스캐너로 받는 값은 정수값이며, for 문으로 1부터 받은 int n 값까지를 출력한다.
이때, 출력될 1값부터 Integer.toString 으로 문자열로 변환한다.
그리고 문자열에 replace를 써서 "3|6|9" 에 해당되는 문자는 별로 바꿔준다.
'Java' 카테고리의 다른 글
[JAVA] 자바 - Date 클래스 (getTime, SimpleDateFormat) (0) | 2022.07.24 |
---|---|
[JAVA] 자바 - Stirng 클래스 Quiz 풀이 모음(2) ⭐⭐ (0) | 2022.07.24 |
[JAVA] 자바 - StringTokenizer 클래스 이해하기! (0) | 2022.07.24 |
[JAVA] 자바 - StringBuilder, StringBuffer 클래스 (0) | 2022.07.24 |
[JAVA] 자바 - String 클래스 (1) (⭐⭐⭐중요) (0) | 2022.07.21 |
블로그의 정보
개발자 미니민의 개발로그
mini_min