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 + "\"");
}
}
- 실행결과
예제 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);
}
}
- 실행결과
예제 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);
}
}
- 실행결과
예제 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);
}
}
- 실행결과
예제 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);
}
}
- 실행결과
예제 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("올바르지 않은 주민등록번호입니다.");
}
}
}
- 실행결과
예제 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);
}
}
- 실행결과
예제 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);
}
}
}
- 실행결과
예제 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);
}
}
- 실행결과
예제 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 "";
}
}
- 실행결과
예제 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;
}
}
- 실행결과
예제 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";
}
}
}
- 실행결과
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 |