Scanner를 이용하여 한 라인을 읽고,
공백으로 분리된 어절이 몇 개인지 출력을 반복하는
프로그램을 작성하라. “exit”이 입력되면 종료한다.
단)stringTokenizer 활용
try catch 구문 넣으시오.
▼정답
package Override;
import java.util.Scanner;
import java.util.StringTokenizer;
public class TokenTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean run = true;
String input;
try {
while (run) {
System.out.println("문자를 입력 해 주세요");
input = sc.nextLine();
StringTokenizer st1 = new StringTokenizer(input, " ");
int count = 0;
while (st1.hasMoreTokens()) { // StringTokenizer에 사용할 수 있는 토큰이 더 있는지 확인
System.out.println(st1.nextToken() + ' '); // StringTokenizer에서 다음 토큰을 불러오는 메서드
count++;
}
System.out.println("count " + count + "개의 단어 입니다.");
System.out.println("다시 하시겠습니까(yes/exit)");
String yOrN = sc.nextLine();
if (yOrN.equals("yes")) {
continue;
} else if (yOrN.equals("exit")) {
System.out.println("종료합니다.");
run = false;
} else {
System.out.println("error");
run = false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Random r1 = new Random();
Random r2 = new Random(10);
▼정답
seed : Random()안에 있는 숫자
seed값을 할당하지 않으면 랜덤으로 값이 출력된다.
Random r2 = new Random(10); ⇒ seed값을 주면 계속 동일한 값을 준다.
▼정답
int형의 범위 : -21억 ~ 21억
BigInteger의 범위 : 무한
⇒문자열 형태로 이루어져 있어 숫자의 범위가 무한하기에 어떠한 숫자든 담을 수 있다.
package Override;
import java.math.BigInteger;
public class BigIntegerTest {
public static void main(String[] args) {
// long 형으로 표현 가능한 값의 크기 출력
System.out.println("최대 정수: " + Long.MAX_VALUE);
// Long : Wrapper class 이다. 각각의 기본형을 객체로 만들어 놓은 것
// .MAX_VALUE : class 이름.으로 들어가서 static으로 선언된 변수이다. (함수 아니다)
// Long 타입의 MAX_VALUE
System.out.println("최소 정수: " + Long.MIN_VALUE);
System.out.println();
// 매우 큰 수를 BigInteger 인스턴스로 표현
BigInteger big1 = new BigInteger("100000000000000000000");
BigInteger big2 = new BigInteger("-99999999999999999999");
// BigInteger 기반 덧셈 연산
BigInteger r1 = big1.add(big2);
System.out.println("덧셈 결과: " + r1);
// BigInteger 기반 곱셈 연산
BigInteger r2 = big1.multiply(big2);
System.out.println("곱셈 결과: " + r2);
System.out.println();
// 인스턴스에 저장된 값을 int형 정수로 반환
int num = r1.intValueExact();
System.out.println("From BigInteger: " + num);
}
}