티스토리 뷰
class만이 메서드를 가질수 있다
1. Scanner 활용
객체.메서드() : 기능수행(동사적)
"인스턴스 방식" - 절차가 복잡(기본 표준)
System.out.print("책 제목 : ");
String bookTitle = scan.nextLine();
System.out.println("입력한 책 제목 : "+bookTitle);
< 입력받기의 문제 >
--> 책 제목 : 입력한 책 제목 :
( 문장을 입력 할 수 있게 나오지 않고 그냥 연결되서 나온다 )
< 입력받기 문제 해결 >
#실습1.
nextLine()
package scanex;
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
String address="";
Scanner scan = new Scanner(System.in);
// 객체 = 인스턴스
--> 메서드를 호출함
( 레퍼런스 변수 )
System.out.println("주소입력 :");
address = scan.nextLine();
// next() -->단어만 입력
공백이 있으면 그 자리에서 끊어 버림
nextLine() --> 공백을 포함해서 한 문장을 입력받음
( 엔터가 나올 때 까지 )
System.out.println("입력받은 주소 :"+address);
}
}
# 실습2.
next()
package scanex;
import java.util.Scanner;
public class ScannerTest2 {
public static void main(String[] args) {
String address="";
Scanner scan = new Scanner(System.in);
System.out.print("주소 입력 : "); //서울 강남구 역삼동
address = scan.next(); //<--- 서울 까지만 가져왔다.
//아직 버퍼라는 곳에 "강남구" "역삼동" 이 남아있다.
System.out.println("입력받은 주소 : "+address);
address = scan.next(); // "강남구"
System.out.println("입력받은 주소 : "+address);
address = scan.next(); // "역삼동"
System.out.println("입력받은 주소 : "+address);
}
}
#실습
( 입력받는것이 문제가 되는 경우 )
package scanex;
import java.util.Scanner;
public class ScannerTest3 {
public static void main(String[] args) {
String address="";
Scanner scan = new Scanner(System.in);
System.out.println("나이입력 :");
int age=scan.nextInt();
System.out.println("주소입력 :");
address = scan.nextLine();
System.out.println("입력한 주소 :"+address);
System.out.println("입력한 나이 :"+age);
//버퍼가 초기화가 되지않아서 문제가생김
}
}
# 문제 해결
scan.nextLine();
package scanex;
import java.util.Scanner;
public class ScannerTest3 {
public static void main(String[] args) {
String address="";
Scanner scan = new Scanner(System.in);
System.out.println("나이입력 :");
int age=scan.nextInt();
scan.nextLine();
System.out.println("주소입력 :");
address = scan.nextLine();
System.out.println("입력한 주소 :"+address);
System.out.println("입력한 나이 :"+age);
}
}
#실습
---------------------------------------
<-구매 목록
====> 입력부 !!!
책1권 제목 입력 : 000
작가 :
구매일(20100103 형식으로 입력해 주세요) :
책1권 가격 : 15000
syso("--------------");
책2권 제목 입력 : 000
책2권 작가 :
구매일(20100103 형식으로 입력해 주세요) :
책2권 가격 : 0000원
==> 출력부!!!
-구매 목록 확인
책1권 제목(작가) :
구매일(가격) : 0000000(00000원)
책2권 제목(작가) :
구매일(가격) : 0000000(00000원)
총계 : 000000원
----------------------------------------------
package scanex;
import java.util.Scanner;
public class ScannerTest4 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("구매목록");
System.out.print("책 1권 제목입력 :");
String name=scan.nextLine();
System.out.print("책 1권 작가 :" );
String writer = scan.nextLine();
System.out.print("구매일(20100000)의 형식으로 입력해 주세요 :");
int day = scan.nextInt();
System.out.print("책 1권 가격 :");
int price = scan.nextInt();
System.out.println("------------------");
scan.nextLine();
System.out.print("책 2권 제목입력 :");
String name2=scan.nextLine();
System.out.print("책 2권 작가 : ");
String writer2=scan.nextLine();
System.out.print("구매일(20100000)의 형식으로 입력해 주세요 :" );
int day2=scan.nextInt();
System.out.print("책 2권 가격 :");
int price2=scan.nextInt();
int hap=price+price2;
System.out.println("구매목록 확인");
System.out.println("책 1권 제목(작가) :"+name+"("+writer+")");
System.out.println("구매일(가격) :"+day+"("+price+")");
System.out.println("책 2권 제목(작가)"+name2+"("+writer2+")");
System.out.println("구매일(가격) :"+day2+"("+price2+")");
System.out.println("총 계 :"+hap);
}
}
2. 대화상자 입력받기
클래스.메서드() : 대화상자 불러내기
"클래스 방식" - 간단(메모리가 부담)
JOptionPane.showInputDialog("이름");
.showMessageDialog(null, "하고 싶은 말");
.showConfirmDialog(... );
--> 대화 상자는 무조건 String(문자열 사용)
--> 클래스 방식
--> 대화상자 입력기
입력 ==>계산을위해 파싱
package dialongInputex;
import javax.swing.JOptionPane;
public class DialongInputTest {
public static void main(String[] args) {
String address=JOptionPane.showInputDialog("주소입력 :");
}
}
#실습1.
package dialongInputex;
import javax.swing.JOptionPane;
public class DialongInputTest {
public static void main(String[] args) {
String address=JOptionPane.showInputDialog("주소입력 ");
String name=JOptionPane.showInputDialog("이름입력 ");
String age=JOptionPane.showInputDialog("나이입력");
String weight=JOptionPane.showInputDialog("뭄무게 입력");
System.out.println("이름 :"+name+"님");
System.out.println("주소 :"+address);
System.out.println("나이 :"+age+"살");
System.out.println("체중 :"+weight+"kg");
}
}
숫자형태의 데이터라면 "10" "1.1" "50" --> 각각의 타입으로 변경시켜야한다
(형변환과 비슷해 보이지만 ) 추출이라고 한다 쌍따옴표에서 순수하게 각 타입을 "추출"해 보자
파싱 작업
--> "1.1" ==> 실수가 있을 때 Double.parseDouble("입력받은 문자열")
--> "10" ==> 정수가 있을 때 Integer.parseInt("입력받은 문자열")
--> "1.1F" ==> 실수가 있을 때 Float.parseFloat("입력받은 문자열")
--> "true" ==> Boolen.parseBoolean("입력받은 문자열")
#실습
-->국어 영어 수학 점수를 입력받고 파싱 메서드에 넣은후 총점과 평균을 구해보자
(입력받은 문자열을 정수형 파싱시킴)
1. kor eng mat
2.변수의 단자
3. 그변수를 파싱하자
4. 파싱한 값을 더하자
5. 파싱한 값을 가지고 평균을 가짐
package dialongInputex;
import javax.swing.JOptionPane;
public class DialongInputTest2 {
public static void main(String[] args) {
// 대화상자 만들기
String strKor=JOptionPane.showInputDialog("국어성적을 입력해주세요");
String strEng=JOptionPane.showInputDialog("영어성적을 입력해주세요");
String strMath=JOptionPane.showInputDialog("수학성적을 입력해주세요");
//정수형으로 바꾸어주는 파싱작업
int kor= Integer.parseInt(strKor);
int eng=Integer.parseInt(strEng);
int math=Integer.parseInt(strMath);
//연산할 수 있는 변수를 만들어냄
int tot= kor+eng+math;
System.out.printf("총합 :%d 점 평균 : %d점",tot,tot/3.0);
}
}
#실습3.
---------------------------------------
<-구매 목록
====> 입력부 !!!
책1권 제목 입력 : 000
작가 :
구매일(20100103 형식으로 입력해 주세요) :
책1권 가격 : 15000
syso("--------------");
책2권 제목 입력 : 000
책2권 작가 :
구매일(20100103 형식으로 입력해 주세요) :
책2권 가격 : 0000원
==> 출력부!!!
-구매 목록 확인
책1권 제목(작가) :
구매일(가격) : 0000000(00000원)
책2권 제목(작가) :
구매일(가격) : 0000000(00000원)
총계 : 000000원
------------------------------------
package dialongInputex;
import javax.swing.JOptionPane;
public class DialongInputTest2 {
public static void main(String[] args) {
String strName = JOptionPane.showInputDialog("책 1권 제목입력");
String strWriter=JOptionPane.showInputDialog("책 1권 작가");
String strDay = JOptionPane.showInputDialog("구매일(20100000)의 형식으로 입력하세요");
String strPrice=JOptionPane.showInputDialog("가격");
String strName2 = JOptionPane.showInputDialog("책 2권 제목입력");
String strWriter2=JOptionPane.showInputDialog("책 2권 작가");
String strDay2 = JOptionPane.showInputDialog("구매일(20100000)의 형식으로 입력하세요");
String strPrice2=JOptionPane.showInputDialog("가격");
int price=Integer.parseInt(strPrice);
int price2=Integer.parseInt(strPrice2);
int hap=price+price2;
System.out.println("책 1권 제목(작가) :"+strName+"("+strWriter+")");
System.out.println("구매일(가격) :"+strDay+"("+strPrice+")");
System.out.println("책 2권 제목(작가)"+strName2+"("+strWriter2+")");
System.out.println("구매일(가격) :"+strDay2+"("+strPrice2+")");
System.out.printf("총 계 :%d 원",hap);
}
}
'Programing > Java' 카테고리의 다른 글
Java1 - 07. 연산자 2 (0) | 2017.04.17 |
---|---|
Java1 - 06. 연산자 1(operator) (0) | 2017.04.14 |
Java1 - 04. 형변환. scanner(입력문) (0) | 2017.04.12 |
Java1 - 03. 변수(Variable) (0) | 2017.04.12 |
Java1 - 02. 출력문 . 자료형 . byte (0) | 2017.04.10 |