Jam's story
4일차 본문
문제
문제
문제
Scanner sc=new Scanner(System.in);
System.out.println("x를 입력해")
int x=sc.nextInt();
System.out.println("y를 입력해");
int y=sc.nextInt();
int max=x>y ? x :y;
System.out.println(max);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int x,y,max;
System.out.println("x를입력하세요 ");
x=Integer.parseInt(br.readLine());
System.out.println("y를입력하세요 ");
y=Integer.parseInt(br.readLine());
max=x>y? x:y;
System.out.println(max);
kors는 기억공간의 이름
입력받은것 자르기
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String data=br.readLine();
int kor,eng,mat,tot;
String[] dataArray=data.split(",");
String name=dataArray[0];
kor=Integer.parseInt(dataArray[1]);
eng=Integer.parseInt(dataArray[2]);
tot=Integer.parseInt(dataArray[3]);
Scanner 사용
package day04;
import java.util.Scanner;
/**
* @author 지민
* @date 2022. 2. 18. - 오후 3:24:13
* @subject
* @content
*
*/
public class Ex08_03 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String name;
int kor, eng,mat,tot;
double avg;
Scanner sc=new Scanner(System.in);
System.out.println("이름 국어 영어 수학 입력: ");
name=sc.next();
kor=sc.nextInt();
eng=sc.nextInt();
mat=sc.nextInt();
tot=kor+eng+mat;
avg=(double)tot/3;
System.out.printf("국어 : %d , 수학: %d, 영어: %d, 총점: %d, 평균: %.1f",
kor,eng,mat,tot,avg);
}
}
구분자 설정 sc.useDelimiter();
String pattern=",";
sc.useDelimiter(pattern); //,String 형태
sc.useDelimiter(",");
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();
//s* //s* 이 사이에 구분자를 넣어준다.
String input = "1 fish 2 fish red fish blue fish";
// //s* //s* 이 사이에 구분자를 넣어준다.
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();
Ex09
아스키코드 소문자- 대문자=32
char a='a', z='z';
char A='A', Z='Z';
System.out.printf("%c[%d]\n", a, (int)a);
System.out.printf("%c[%d]\n", z, (int)z);
System.out.printf("%c[%d]\n", A, (int)A);
System.out.printf("%c[%d]\n", Z, (int)Z);
// [문제] pi 실수값을 소수점 4번째 자리에서 반올림해서 출력
double pi = 3.141592;
/*
System.out.println( pi* 1000 ); // 3141.592
System.out.println( pi* 1000 + 0.5 );// 3142.092
System.out.println( (int)( pi* 1000 + 0.5 ) );// 3142
System.out.println( ( (int)( pi* 1000 + 0.5 )) / 1000D );
*/
double r = ((int) (pi * 1000+0.5))/1000D;
System.out.println( r );
두 문자열을 비교할 때는 .equals() 메소드 사용
앞뒤 공백 제거함수 -> .trim()
조건식
double pi = 3.141592;
// 3번 풀이
String strPI = String.format("%.3f", pi);
// String -> double 변환
double dPI = Double.parseDouble(strPI);
System.out.println( dPI );
// 2번 풀이
System.out.printf("%.3f\n", pi);
// 1번 풀이
/*
System.out.println( pi* 1000 ); // 3141.592
System.out.println( pi* 1000 + 0.5 );// 3142.092
System.out.println( (int)( pi* 1000 + 0.5 ) );// 3142
System.out.println( ( (int)( pi* 1000 + 0.5 )) / 1000D );
*/
double r = ((int) (pi * 1000+0.5))/1000D;
System.out.println( r );
// 이상호
// 박예린( 검색 )
int n = 100; //
// [시험]
// 어떤 기억공간의 값을 n 증가/감소 시키는 코딩을 하세요.
int x = 10;
// this.textName.Text = this.textName.Text + " 안녕하세요";
// this.textName.Text += " 안녕하세요";
x = x + 5; // 5 증가
// 복합 대입연산자로 수정
x += 5; // (권장)
x = x - 5; // 5감소
x -= 5;
x = x + n; // x += n
x = x - n; // x -= n
x = x * 100;
x *= 100;
x = x / 2;
x /= 2;
// x 값을 1증가 하는 코딩을 모두하세요
/*
x = x + 1;
x++;
++x;
x += 1;
*/
// [ 삼항연산자(항갯수) , 조건연산자 (기능) ]
// 참거짓수식(항1) ? 항2 : 항3
// ㄴ 항1이 참이면 결과 항2
// ㄴ 항1이 거짓이면 결과 항3
int x = 3, y ;
y = ( x > 5 ? 100 : 200 );
// y = 100;
// 항1 ? 항2 : 항3
// 10 > 5 (참)
System.out.println( y );
}
// [문제] pi 실수값을 소수점 4번째 자리에서 반올림해서 출력
double pi = 3.141592;
// 3번 풀이
String strPI = String.format("%.3f", pi);
// String -> double 변환
double dPI = Double.parseDouble(strPI);
System.out.println( dPI );
// 2번 풀이
System.out.printf("%.3f\n", pi);
// 1번 풀이
/*
System.out.println( pi* 1000 ); // 3141.592
System.out.println( pi* 1000 + 0.5 );// 3142.092
System.out.println( (int)( pi* 1000 + 0.5 ) );// 3142
System.out.println( ( (int)( pi* 1000 + 0.5 )) / 1000D );
*/
double r = ((int) (pi * 1000+0.5))/1000D;
System.out.println( r );
// 이상호
// 박예린( 검색 )
// [시험]
// 조건 : 삼항 연산자를 사용하세요..
// 두 정수 x,y 를 키보드에서 입력받아서
// 두 정수 중에 큰 값을 max 라는 변수에 저장해서 출력하세요.
int x, y, max;
BufferedReader br = new BufferedReader( new InputStreamReader(System.in)) ;
System.out.print("> x 입력 ? ");
x = Integer.parseInt( br.readLine() );
System.out.print("> y 입력 ? ");
y = Integer.parseInt( br.readLine() );
max = x > y ? x : y;
System.out.println( max );
// String[] args 문자열 배열 args
// [시험]
// ***** [] 인덱스(index) 연산자 *****
// 1. 한 학생의 국어 점수를 저장할 변수를 선언하세요.
// int kor;
// 2. 5000만명 학생의 국어 점수를 저장할 변수를 선언하세요.
/*
int kor00001;
int kor00002;
:
:
int kor49999;
int kor50000;
*/
// 3. 배열
// ㄱ. 배열 정의 ? [동일한 자료형]을 메모리 상에 [연속적]으로 놓이게 하는 것.
// ㄴ. 배열 선언 형식
// 변수명 , 참조변수( 주소 참조하고 있다고 해서 참조변수라 한다. ), 배열명
// 자료형 [] 배열명 = new 자료형[배열크기];
// 예) int [] kors = new int[3];
// heap(힙) 동적 메모리 영역 int * 3
int [] kors = new int[3];
// 배열명[인덱스값]
// 첨자값
kors[0] = 98;
kors[1] = 88;
kors[2] = 50;
System.out.println( kors[0] );
System.out.println( kors[1] );
System.out.println( kors[2] );
} // main
// ( 배열 사용하는 예제 )
// 한 학생의 이름, 국,영,수을 입력받아서 총점,평균을 출력하는 코딩.
// 1. 변수 선언
String name;
int kor, eng, mat, tot;
double avg;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("> 이름,국어,영어,수학 입력 ? "); // 홍길동,90,88,75 엔터
// 이클립스 디버깅.... F11
// 토글 중단점 Ctrl + F11 X
// 중단점 잡은 라인은 아직 실행이 안된 라인이다.
// F6 Step Over
String data = br.readLine(); // "홍길동,90,88,75"
//System.out.println("입력받은 데이타 : " + data );
// "홍길동,90,88,75" 콤마(,) 구분자로 분리
// "홍길동"
// "90"
// "88"
// "75"
// split() 1. 기능 2. 매개변수 "," 3. 리턴값,리턴자료형 String []
String [] dataArray = data.split(",");
// 문자열 앞뒤에 있는 공백 제거하는 메서드 : String.trim()메서드
name = dataArray[0].trim() ;
kor = Integer.parseInt( dataArray[1].trim() ) ; // " 90 " -> 90
eng = Integer.parseInt( dataArray[2].trim() ); // "88" -> 88
mat = Integer.parseInt( dataArray[3].trim() ); // "75" -> 75
tot = kor + eng + mat;
avg = ( double ) tot / 3;
// 출력
System.out.printf("이름=\"%s\", 국어=%d, 영어=%d, 수학=%d, 총점=%d, 평균=%.2f\n"
, name, kor, eng, mat, tot, avg);
// > 이름,국어,영어,수학 입력 ?
//"홍길동"
// "_89 " -> 89 변환 에러
// "_90______"
// "___80"
// java.lang.NumberFormatException: For input string: " 89 "
} // main
String name;
int kor, eng, mat, tot;
double avg;
Scanner sc = new Scanner(System.in);
System.out.print("> 이름,국어,영어,수학 입력 ? "); // 홍길동 90 88 50 엔터
name = sc.next(); // String
kor = sc.nextInt(); //
eng = sc.nextInt();
mat = sc.nextInt();
tot = kor + eng + mat;
avg = ( double ) tot / 3;
System.out.printf("이름=\"%s\", 국어=%d, 영어=%d, 수학=%d, 총점=%d, 평균=%.2f\n"
, name, kor, eng, mat, tot, avg);
// 1.
// 정수 계열
char a = 'a', z = 'z';
char A = 'A', Z= 'Z' ;
System.out.printf("%c[%d]\n", a, (int)a);
System.out.printf("%c[%d]\n", z, (int)z);
System.out.printf("%c[%d]\n", A, (int)A);
System.out.printf("%c[%d]\n", Z, (int)Z);
/* 대문자를 소문자로 변환
* 소문자를 대문자로 변환
* 소 - 대 = [32]
* 97-63 = 32
a[97]
z[122]
A[65]
Z[90]
*/
// 2.
// 대문자 A - 소문자 a 문자코드값의 차 32 를 확인..
System.out.println( a - A ); // 'a' - 'A' 32
System.out.println( 'a' - 'A' ); // 'a' - 'A' 32
// 3.
char ch = 'x' - 32;
System.out.println( ch ); // 'X'
// p 118
// 효율적인 연산 ( short circuit evaluation )
int a = 1, b = 2, c = 3,d = 4;
System.out.println( a > b && c > d );
// F T/F X
//
System.out.println( a < b || c > d );
// T T/F X
public static void main(String[] args) {
// String 이름
// int 나이
// boolean 성별
// double 키
String name;
int age;
boolean gender;
double height;
Scanner scanner = new Scanner( System.in );
System.out.print("> 이름 나이 성별 키 입력 ? "); // 홍길동 20 true 175.87 엔터
// scanner.nextXXX();
name = scanner.next(); // String
age = scanner.nextInt(); // int
gender = scanner.nextBoolean();
height = scanner.nextDouble();
System.out.printf( "이름:%s, 나이:%d, 성별:%b, 키:%.2f \n", name, age, gender, height );
scanner.close();
// Java API Doc 예제
// 이클립스 단축키 Ctrl + Shift + O
String input = "1 fish 2 fish red fish blue fish";
// \\s space 공백
// * 반복 회수 0~여러번
// fish
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt()); // 1
System.out.println(s.nextInt()); // 2
System.out.println(s.next()); // red
System.out.println(s.next()); // blue
s.close();
Comments