문자열 입력 숫자 판별 프로그램
1. 다음은 주어진 문자열(value)이 숫자인지를 판별하는 프로그램을 작성하시오.
String 함수 charAt(i), length() 을 사용함.
[결과]
숫자만 입력하세요
123
123는 숫자 입니다.
[결과]
숫자만 입력하세요
123@12
123@12는 숫자가 아닙니다.
package chap4;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
//---------------------초기화--------------------------------
Scanner scan = new Scanner (System.in);//입력 받기위한 라이브러리의 객체(scan) 정의
int len = 0; //변수 초기화
int value = 0; //변수 초기화
boolean isNum=true; //변수 초기화인데 불리언임.
//-----------------------입력부------------------------------
System.out.println("숫자를 입력하세요");
String str = scan.next(); //str이라는 변수를 넥스트(문자열자료형)함수를 통해 문자열자료형로 받아온다.
len = str.length(); //len은 str의 인덱스 개수.
//-------------------------제어부-------------------------------
for(int i= 0; i<len; i++) { //for문을 입력값의 인덱스 개수만큼 검증하기위한 조건.
value = str.charAt(i); //입력받은 인덱스(자리)의 값
if (('0'<=value && value <= '9')) { //조건식 : 1부터 9까지의 숫자
isNum = true; //위의 조건이 참이라면, 조건식1
}
else {
isNum = false; //위의 조건이 거짓이라면, 조건식2
break; //반복문의 종료
}
}
//--------------------------출력부------------------------------------
if(isNum)
System.out.println(str+",숫자입니다."); //조건문1 만족할때 출력
else
System.out.println(str+",숫자가 아닙니다."); //조건문2 만족할때 출력
}
}
- 윤년,평년 판별 프로그램

* 윤년 구하기
* 윤년은 4의 배수 중 100의 배수인경우는 평년, 100의 배수가 아닌 경우는 윤년,
* 단 400의 배수는 윤년.
* 년도를 입력받아서 윤년, 평년 인지를 출력하기.
* [결과]
* 년도를 입력하세요
* 2020
* 윤년
*
* 년도를 입력하세요
* 2100
* 평년
태양력의 윤년
package chap4;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
System.out.println("년도를 입력하시오");
Scanner scan = new Scanner(System.in);
int year =scan.nextInt();
int leafyear=0;////윤년은 해당 연도를 4,100,400로 나눈 값이 0
if (year%4==0&&year%100==0&&year%400==0) {
System.out.println(year+"\\n"+"윤년");
}
else{
System.out.println(year+"\\n"+"평년");
}
}
}
package chap4;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
System.out.println("년도를 입력하시오");
Scanner scan = new Scanner(System.in);
int year =scan.nextInt();
int leafyear=0;////윤년은 해당 연도를 4,100,400로 나눈 값이 0
if (year%4==0) {
if(year%400 !=0||year%100 !==0) {
System.out.println(year+"\\n"+"윤년");
}
else{
System.out.println(year+"\\n"+"평년");
}
}
else{
System.out.println(year+"\\n"+"평년");
}
}
}
화면에서 한개의 문자를 입력받아 대문자인 경우는 소문자로,
소문자인 경우는 대문자로 숫자인 경우는 20을 더한 값을 출력하기
그외의 문자는 기타 문자 를 출력하세요
[결과]
한개의 문자를 입력하세요
A
a
[결과]
한개의 문자를 입력하세요
a
A
[결과]
한개의 문자를 입력하세요
1
21
package chap4;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
char result = '0'; // => 대문자 소문자 결과 값 저장용
int result_int = 0; // => 숫자 연산 후 결과 값 저장용
System.out.println("한개의 문자를 입력하세요");
String str = scan.next(); //문자열 받게 끔
char ch = str.charAt(0);// 입력된 문자열중 첫번째 문자를 저장
int i = ch; // => 아스키코드로 변환
int num = ch - '0'; // => 숫자 문자를 숫자로 변형
if(ch>='A'&&ch<='Z'){ // 대문자면 소문자로 변환
result = (char)(i + 32);
System.out.println(result);
}
else if(ch>='a'&&ch<='z'){ // 소문자면 대문자로 변환
result = (char)(i - 32);
System.out.println(result);
}
else if('0'<=ch && ch <= '9'){ //숫자면 20더한 값을 출력
result_int= num + 20;
System.out.println(result_int);
}
else {
System.out.println("기타문자");
}
}
}
package chap4;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
System.out.println("년도를 입력하시오");
Scanner scan = new Scanner(System.in);
int year =scan.nextInt();
int leafyear=0;////윤년은 해당 연도를 4,100,400로 나눈 값이 0
if (year%4==0) {
if(year%400 !=0||year%100 !=0) {
System.out.println(year+"\\n"+"윤년");
}
else{
System.out.println(year+"\\n"+"평년");
}
}
else{
System.out.println(year+"\\n"+"평년");
}
}
}
}
대칭수 구하는 프로그램을 작성하기
대칭수란 숫자를 거꾸로 읽어도 앞으로 읽는 것과 같은 수를 말한다.
12321 : 대칭수
12345 : 대칭수 아님
package chap4;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int len =0;
System.out.println("숫자를 입력하세요");
String num = scan.next();
len = num.length();
String reult1 = "";
boolean f_temp = false;
for(int i=0; i<=(len/2)-1; i++){
reult1 += num.charAt(i);
}
int count = 0;
for(int i=len-1; i>=(len/2)+1; i--){
if(reult1.charAt(count) == num.charAt(i)){
f_temp = true;
}
else{
f_temp = false;
break;
}
if(count != reult1.length()-1)
count++;
}
if(f_temp)
System.out.println("대칭수");
else
System.out.println("대칭수 아님");
}
}
package chap4;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("숫자를 입력하세요");
int num = scan.nextInt();//입력받은수 123
int tmp = num;
int result =0 ;
while(tmp!=0) {//tmp :123>12>1>0 0이면 거짓 반복문 바깥
result*=10;//3>30>32>320
result += tmp%10; //0>2>1
tmp/=10; //1>1/10=0
}
//num: 입력받은수
//result : 뒤집은숫자
if(num == result) {
System.out.println(num+"대칭수");
}else{
System.out.println(num+"대칭수 아님");
}
}
}
'수업 문제(국비 지원) > Java' 카테고리의 다른 글
| [JAVA] 2022.08.30 - java 가변배열, 클래스 정의 사용 (0) | 2023.04.27 |
|---|---|
| [JAVA] 2022.08.29 - java 배열, 정렬 (0) | 2023.04.27 |
| [JAVA] 2022.08.25 - java 반복문 (0) | 2023.04.27 |
| [JAVA] 2022.08.23 - java 연산자 (0) | 2023.04.27 |
| [JAVA] 2022.08.22 - Java 변수,명명규칙 (0) | 2023.04.27 |