자바

JAVA STEP 23. String 예제 모음

2023. 2. 15. 22:56
728x90

예제 1)  요구사항 : 문장을 입력받아 역순으로 출력하시오.

  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0080 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("문장 입력 : ");
		String input = scan.nextLine();
		String result = "";
		
		int index = -1;
		
		for(int i=input.length()-1; i>=0; i--) {
			
			result += input.charAt(i);
			
		}
		
		System.out.println("역순 결과 : " + "\"" + result + "\"");

	}

}
  • 실행결과

예제 1 실행결과

 

예제 2) 요구사항 : 이메일 주소를 입력받아 아이디와 도메인을 각각 추출하시오.

  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0081 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("이메일 : ");
		String email = scan.nextLine();
		
		int index = -1;
		
		index = email.lastIndexOf("@");
		
		String id = email.substring(0,index);
		String domain = email.substring(index+1);
		
		System.out.println("아이디 : " + id);
		System.out.println("도메인 : " + domain);
		
		
		
		

	}

}
  • 실행결과
  •  

예제 2 실행결과

 

예제 3) 요구사항 : 숫자를 입력받아 각 자릿수의 수의 합을 구하시오.

  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0082 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("숫자 : ");
		String input = scan.nextLine();
		
		int sum = 0;
		String result = "";
		
		for(int i=0; i<input.length(); i++) {
			
			int a = input.charAt(i)-48;
			result += a + " + ";
			sum += a;
		}
		int index = result.lastIndexOf("+");
		result = result.substring(0,index);
		System.out.printf("결과 : %s = %d", result, sum);

	}

}
  • 실행결과

예제 3 실행결과

 

예제 4) 요구사항 : 파일명 10개를 입력받아 각 확장자별로 총 개수를 출력하시오.

  • 조건
    • 확장자는 다음으로 제한한다.
    • mp3, jpg, java, hwp, doc
  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0083 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		String txt = ""; 
		int mp3 = 0;
		int jpg = 0;
		int java = 0;
		int hwp = 0;
		int doc = 0;
		
		int index = 0;
		
		for(int i=0; i<10; i++) {
			System.out.print("파일명 : ");
			txt = scan.nextLine();
			
			index = txt.lastIndexOf(".");
			txt = txt.substring(index+1);
			if(txt.equals("mp3")) {
				mp3++;
			}else if(txt.equals("jpg")) {
				jpg++;
			}else if(txt.equals("java")) {
				java++;
			}else if(txt.equals("hwp")) {
				hwp++;
			}else if(txt.equals("doc")) {
				doc++;
			}
		}
		System.out.println();
		System.out.printf("mp3 : %d개\n", mp3);
		System.out.printf("jpg : %d개\n", jpg);
		System.out.printf("java : %d개\n", java);
		System.out.printf("hwp : %d개\n", hwp);
		System.out.printf("doc : %d개\n", doc);
	}
	

}
  • 실행결과

예제 4 실행결과

 

예제 5) 요구사항 : 특정 단어가 문장내에 몇회 있었는지 수를 세시오.

  • 소스코드
  •  
package com.test.question;

public class Q0084 {

	public static void main(String[] args) {
		
		String content = "안녕~ 길동아~ 잘가~ 길동아~";
		
		String word = "길동"; //검색어
		int count = 0;
		
		int index = -1;
		
		while(true) {
			index = content.indexOf(word, index);
			
			if(index > -1) {
				count++;
				index = index + word.length(); 
			}else {
				break;
			}
			
			
		}
		
		System.out.printf("'길동'을 총 %d회 발견했습니다.", count);
		

	}

}
  • 실행결과

예제 5 실행결과

 

예제 6) 요구사항 : 주민 등록 번호 유효성 검사를 하시오.

  • 조건 '-'의 입력 유무 상관없이 검사하시오.
  • 소스코드
  •  
package com.test.question;

import java.util.Arrays;
import java.util.Scanner;

public class Q0085 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("주민등록번호 : ");
		String number = scan.nextLine();
		
		int sum = 0;
		
		number=number.replace("-", "");
		
	
		for(int i=0; i<12; i++) {
			sum += Integer.parseInt(number.substring(i, i+1))* (i%8+2);
		}
		
		sum %= 11;
		int result = 11-(sum%10);
		
		System.out.println(result);
		
		if(result==Integer.parseInt(number.substring(number.length()-1, number.length()))) {
			System.out.println("올바른 주민등록번호입니다.");
		}else {
			System.out.println("올바르지 않은 주민등록번호입니다.");
		}
		
		

	}

}
  • 실행결과

예제 6 실행결과

 

예제 7) 요구사항 : 숫자를 입력받아 3자리마다 ,를 붙이시오.

  • 조건
    • %,d 사용 금지
  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0086 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		String oper = "";
		String result = "";
		
		System.out.print("숫자 : ");
		String num = scan.nextLine();
		
		while(num.length()>3) {
			
			result = "," + num.substring(num.length()-3,num.length()) + result;
			num = num.substring(0, num.length()-3);
			
		}
		System.out.println("결과 : " + num + result);
		

	}

}
  • 실행결과

예제 7 실행결과

 

예제 8) 요구사항 : 영단어를 입력받아 분리하시오.

  • 조건
    • 합성어를 입력한다.
    • 파스칼 표기법으로 입력
    • 출력은 각 단어를 공백으로 구분한다.
  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0087 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("단어 : ");
		String word = scan.nextLine();
		
		for(int i=0; i<word.length(); i++) {
			
			char search = word.charAt(i);
			
			if(search >= 'A' && search <= 'Z' && i != 0) {
				System.out.print(" ");
				
			}
			System.out.print(search);
		}
		
		
		

	}

}
  • 실행결과

예제 8 실행결과

 

예제 9) 요구사항 : 금지어를 마스킹 처리 하시오.

  • 조건
    • 금지어 : 바보, 멍청이
  • 소스코드
  •  
package com.test.question;

import java.util.Scanner;

public class Q0088 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		String word = "바보";
		String word2 = "멍청이";
		
		int count = 0;
		int index = -1;
		
		System.out.print("입력 : ");
		String result = scan.nextLine();
		
			
			while(true) {
				index = result.indexOf(word, index);
				
				if(index > -1) {
					count++;
					index = index + word.length(); 
				}else {
					break;
				}
			}
			
			while(true) {
				index = result.indexOf(word2, index);
					
				if(index > -1) {
					count++;
					index = index + word2.length(); 
				}else {
					break;
				}	
			}
			result = result.replace("바보", "**");
			result = result.replace("멍청이", "**");
			
			System.out.println(result);
			System.out.printf("금지어를 %d회 마스킹했습니다." , count);
			

	}

}
  • 실행결과

예제 9 실행결과

 

예제 10) 요구사항 : 입력받은 금액을 한글로 출력하시오.

  • 조건
    • 입력 범위(원) : 0 ~ 99,999,999
  • 소스코드
  •  
package com.test.question;

import java.util.Arrays;
import java.util.Scanner;

public class Q0089 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.println("입력 범위(원) : 0 ~ 99,999,999");
		System.out.print("금액(원) : ");
	
		String money = scan.nextLine();
		
		String result2 = "";
		
		int [] result = new int [money.length()];
		
		for(int i=0; i<money.length(); i++) {
			
			result[i] = money.charAt(i)-48;
			
		}
		for(int i=0; i<=result.length-1; i++) {
			//7~0
			if(i==result.length-1) {
				result2 += number(result[i]) + "원";
			}else if(i==result.length-2){
				result2 += number(result[i]) + "십";
			}else if(i==result.length-3) {
				result2 += number(result[i]) + "백";
			}else if(i==result.length-4) {
				result2 += number(result[i]) + "천";
			}else if(i==result.length-5) {
				result2 += number(result[i]) + "만";
			}else if(i==result.length-6) {
				result2 += number(result[i]) + "십";
			}else if(i==result.length-7) {
				result2 += number(result[i]) + "백";
			}else if(i==result.length-8) {
				result2 += number(result[i]) + "천";
			}else {
				System.out.println("오류발생");
				break;
			}
			
		}

		System.out.println(result2);
	}

	public static String number(int num) {
		
		if(num==1) {
			return "일";
		}else if(num==2) {
			return "이";
		}else if(num==3) {
			return "삼";
		}else if(num==4) {
			return "사";
		}else if(num==5) {
			return "오";
		}else if(num==6) {
			return "육";
		}else if(num==7) {
			return "칠";
		}else if(num==8) {
			return "팔";
		}else if(num==9) {
			return "구";
		}return "";
		
	}
	

		
		
	
}
  • 실행결과

예제 10 실행결과

 

예제 11) 요구사항 : 입력받은 문장에서 숫자를 찾아 그 합을 구하시오.

  • 조건 : 모든 숫자는 한자리 숫자로 처리한다.
  • 소스코드
  •  
package com.test.question;

import java.util.Arrays;
import java.util.Scanner;

public class Q0090 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("입력 : ");
		String input = scan.nextLine();
		
		String [] middle = new String [input.length()];
		
		int n=1;
		int sum=0;
		
		for(int i=0; i<input.length(); i++) {
			middle[i] = input.substring(i, n);
			n++;
		}
		
		for(int i=0; i<middle.length; i++) {
			sum += Search(middle[i]);
		}
		System.out.println(Arrays.toString(middle));
		System.out.printf("문장에 존재하는 모든 숫자의 합은 %d입니다.", sum);
	}
	public static int Search(String s) {
		
		if(s.equals("1")){return 1;		
		}else if(s.equals("2")){return 2;
		}else if(s.equals("3")){return 3;
		}else if(s.equals("4")){return 4;
		}else if(s.equals("5")){return 5;
		}else if(s.equals("6")){return 6;
		}else if(s.equals("7")){return 7;
		}else if(s.equals("8")){return 8;
		}else if(s.equals("9")){return 9;
		}return 0;
		
	}

}
  • 실행결과

예제 11 실행결과

 

예제 12) 요구사항 : 연산식을 입력받아 실제 연산을 하시오.

  • 조건
    • 산술 연산자만 구현하시오(+, -, *, /, %)
    • 연산식의 공백은 자유롭게 입력 가능합니다.
    • 산술 연산자가 반드시 존재하는지 체크하시오.
    • 피연산자의 갯수가 2개인지 체크하시오
  • 소스코드
  •  
package com.test.question;

import java.util.Arrays;
import java.util.Scanner;

public class Q0091 {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		System.out.print("입력 : ");
		String input = scan.nextLine();
		
		String [] middle = input.split(" ");
		
		if(middle.length < 3) {
			System.out.println("피연산자가 부족합니다.");
		}
		
		if(inspect(middle[1]).equals("false")) {
			System.out.println("연산자가 올바르지 않습니다.");
		}
		else {
		int n1 = Integer.parseInt(middle[0]);
		int n2 = Integer.parseInt(middle[2]);
		
		int sum = oper(n1,n2,middle[1]);
		
		System.out.printf("%d %s %d = %d", n1, middle[1], n2, sum);
		}
	}
	
	public static int oper(int n1, int n2, String s ) {
		
		int sum = 0;
		if(s.equals("+")){
			return n1 + n2;
		}else if(s.equals("-")){
			return n1 - n2;
		}else if(s.equals("*")){
			return n1 * n2;
		}else if(s.equals("/")){
			return n1 / n2;
		}else if(s.equals("%")){
			return n1 % n2;
		}return 0;
		
	}
	
	public static String inspect(String s) {
		
		if(s.equals("+")) {
			return "+";
		}else if(s.equals("-")) {
			return "-";
		}else if(s.equals("*")) {
			return "*";
		}else if(s.equals("/")) {	
			return "/";
		}else if(s.equals("%")) {
			return "%";
		}else {
			return "false";
		}
	}

}
  • 실행결과

예제 12 실행결과

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'자바' 카테고리의 다른 글

JAVA STEP 25. CLASS&Constuctor  (0) 2023.02.17
JAVA STEP 24. CLASS  (0) 2023.02.16
JAVA STEP 22. String 문자열  (0) 2023.02.15
JAVA STEP 21. Array 예제 모음  (0) 2023.02.14
JAVA STEP 20. Array  (0) 2023.02.13
'자바' 카테고리의 다른 글
  • JAVA STEP 25. CLASS&Constuctor
  • JAVA STEP 24. CLASS
  • JAVA STEP 22. String 문자열
  • JAVA STEP 21. Array 예제 모음
IT의 큰손
IT의 큰손
IT계의 큰손이 되고 싶은 개린이의 Log 일지
Developer Story HouseIT계의 큰손이 되고 싶은 개린이의 Log 일지
IT의 큰손
Developer Story House
IT의 큰손
전체
오늘
어제
  • 분류 전체보기 (457)
    • 정보처리기사 필기 (18)
    • 정보처리기사 실기 (12)
    • 정보처리기사 통합 QUIZ (12)
    • 빅데이터 (11)
    • 안드로이드 (11)
    • 웹페이지 (108)
    • 자바 (49)
    • SQLD (3)
    • 백준 알고리즘 (76)
    • 데이터베이스 (41)
    • 깃허브 (2)
    • Library (14)
    • Server (31)
    • 크롤링&스크래핑 (3)
    • Spring (23)
    • Vue.js (13)
    • React (27)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Developer Stroy House

인기 글

태그

  • ajax
  • 개발블로그
  • jquery
  • 자바
  • 코딩테스트
  • IT개발자
  • 정보처리기사
  • React
  • 앱개발자
  • css
  • html
  • java
  • 개발자
  • JavaScript
  • IT자격증
  • IT자격증공부
  • 백준
  • 웹개발자
  • 웹개발
  • 웹페이지
  • 데이터베이스
  • DB
  • DBA
  • jsp
  • 정보처리기사필기
  • 알고리즘
  • 정보보안전문가
  • 백엔드
  • it
  • 프론트엔드

최근 댓글

최근 글

Designed By hELLO
IT의 큰손
JAVA STEP 23. String 예제 모음
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.