Jam's story

4일차 본문

Java

4일차

애플쩀 2022. 2. 18. 17:50

문제

문제

문제

		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();

 

'Java' 카테고리의 다른 글

8일차  (0) 2022.02.24
7일차  (0) 2022.02.23
5일차  (0) 2022.02.21
3일차  (0) 2022.02.17
2일차  (0) 2022.02.16
Comments