1021.
1개의 단어를 입력받아 그대로 출력해보자.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String word = scan.next();
System.out.println(word);
scan.close();
}
}
1022.
공백 문자가 포함되어 있는 문장을 입력받고 그대로 출력하는 연습을 해보자.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String sentence= scan.nextLine();
System.out.println(sentence);
scan.close();
}
}
1023.
실수 1개를 입력받아 정수 부분과 실수 부분으로 나누어 출력한다.
● Integer.valueOf(String)란
매개변수로 기본형 변수와 객체를 지정해 String객체로 반환한다.
● Integer.valueOf(String)와 Integer.parseInt(String) 차이점
Integer.valueOf(String)는 String이 Integer.parseInt(String)한 거랑 똑같이 해석됩니다. 그러나, valueOf(String)은 new Integer()으로 객체를 반환하고 parseInt(String)은 int 기본 자료형을 반환합니다.
결론적으로 문자열을 변환할 때 기본 자료형이 아닌 객체로 받아오고 싶을 때는 valueOf(String)을 쓰시면 되고. 그게 아닐 경우는 parseInt(String)을 쓰시면 됩니다.
일단 이렇게
StringTokenizer는 단 한 개의 구분자만을 사용할 수 있으므로 복잡한 구분자를 사용해야 할 때는
Scanner 나 split을 사용해야 한다.
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String fl = scan.nextLine();
StringTokenizer tk = new StringTokenizer(fl,".");
while(tk.hasMoreTokens()) {
System.out.println(tk.nextToken());
}
}
}
1024.
단어를 1개 입력받는다.
입력받은 단어(영어)의 각 문자를
한 줄에 한 문자씩 분리해 출력한다.
Split 메서드를 사용해서 구분자를("") 공백으로 처리 후 나눠 넣을 생각이다
etc. 정규표현식이 들어가므로.으로 구분하고 싶을 땐 \\.으로 처리를 해줘야 된다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); // 입력
String word = scan.next(); // 입력값을 Str word변수에저장
String[] array_words = new String[word.length()]; // 입력받은 문자열의길이만큼에 배열을 생성
array_words = word.split(""); // 문자열을 한글자씩 분리후 배열에담아
for (int i = 0; i < word.length(); i++)
System.out.printf("'%s'\n",array_words[i]); // 출력
}
}
1025.
charAt (문장 중에 인덱스 위치에 해당되는 문자 추출하기)
charAt(index)에서 index값에 해당되는 자리에서 문자 하나를 추출합니다.
자바에서는 제곱근을 구할 때 ^라는 기호를 사용하지 않고
Math.pow라는 함수를 사용하는데
Math.pow(밑, 지수) 형태이며
함수의 입출력이 전부 double형인 실수형이다.
valueOf() 메서드는 () 괄호 안의 해당 객체를 String 객체로 변환시키는 역할을 합니다. 말 그대로 String의 객체로 형 변환입니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); // 입력
String num = scan.next();
int idx =0; //0번째 인덱스부터 내림차순
for(int i = num.length()-1; i>=0; i--) //내림차순이니 감소형식
System.out.println("[" + Integer.parseInt(String.valueOf(num.charAt(idx++))) * (int) Math.pow(10,i) + "]");
//valueOf로 입렵값의 0번째 인덱스 부터 정수로변환후
//Math.pow함수의 10과 num.length-1제곱을한뒤 곱한다.
//반복은 입력받은 문자열 갯수 -1 만큼해줘야하는데 제곱근식이 성립하기위해서고
//i범위가 0을포함하는 이유는 모든 0의거듭제곱근은1 1의자리까지 출력하기위함
}
}
1026.
입력되는 시:분:초에서 분만 출력해보자.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); // 입력
String time = scan.nextLine();
String[] times = time.split(":");
System.out.printf("%d",Integer.parseInt(times[1]));
}
}
times가 스트링 배열로 % s로 출력하게 되면 6:00:00분을 입력받았을 때
분을 출력하면 00이 나오지만 정수형으로 바꾸게 되면 정수는 00이 없기 때문에 0이 출력됨.
1027.
년월일을 출력하는 방법은 나라마다, 형식마다 조금씩 다르다.
연월일(yyyy.mm.dd)을 입력받아,
일 월년(dd-mm-yyyy)으로 출력해보자.
(단, 한 자리 일/월은 0을 붙여 두 자리로, 년도도 0을 붙여 네 자리로 출력한다.)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); // 입력
String date = scan.nextLine();
String[] dates =date.split("\\.");
System.out.printf("%s-%s-%s", dates[2],dates[1],dates[0]);
}
}
. 은 정규표현식 전부를 표현하므로 역 슬래쉬 두 개를 붙임.
1028.
정수 1개를 입력받아 그대로 출력해보자.
(단, 입력되는 정수의 범위는 0 ~ 4,294,967,295이다.)
참고
-2147483648 ~ +2147483647 범위의 정수를 저장하고 처리하기 위해서는
int 형으로 변수를 선언하면 된다.(int로 선언하고 % d로 받고 출력)
하지만 이 범위를 넘어가는 정수를 저장하기 위해서는
보다 큰 범위를 저장할 수 있는 다른 데이터형을 사용해야 정상적으로 저장시킬 수 있다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in); // 입력
long num =scan.nextLong();
System.out.println(num);
}
}
1029.
실수 1개를 입력받아 그대로 출력해보자.
(단, 입력되는 실수의 범위는 +- 1.7*10-308 ~ +- 1.7*10308이다.) 308이다.)
참고
float 데이터형을 사용하면 +- 3.4*10-38 ~ +- 3.4*1038 범위의 실수를 저장할 수 있다.
(float로 선언하고 % f로 입력받아 출력하면 된다.)
이 범위를 넘어가는(더 작거나 더 큰) 실수를 저장하기 위해서는
보다 큰 범위를 저장할 수 있는 다른 데이터형을 사용해야 정상적으로 저장시킬 수 있다.
double은 더 정확하게 저장할 수 있지만, float보다 2배의 저장 공간이 필요하다.
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan =new Scanner(System.in);
BigDecimal bigDecimal = scan.nextBigDecimal();
System.out.println(bigDecimal);
}
}
- BigDecimal은 Java 언어에서 숫자를 정밀하게 저장하고 표현할 수 있는 유일한 방법이다.
- 소수점을 저장할 수 있는 가장 크기가 큰 타입인 double은 소수점의 정밀도에 있어 한계가 있어 값이 유실될 수 있다.
- Java 언어에서 돈과 소수점을 다룬다면 BigDecimal은 선택이 아니라 필수이다.
- BigDecimal의 유일한 단점은 느린 속도와 기본 타입보다 조금 불편한 사용법뿐이다.
1030.
정수 1개를 입력받아 그대로 출력해보자. 단, 입력되는 정수의 범위는 -9,223,372,036,854,775,808 ~
+9,223,372,036,854,775,807이다.
import java.math.BigDecimal;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
BigDecimal bigDecimal = scan.nextBigDecimal();
System.out.println(bigDecimal);
}
}
'JAVA > [JAVA]codeUp 기초100제 자바' 카테고리의 다른 글
[JAVA]codeUp 기초100제 자바 1031~1040번 (0) | 2020.03.25 |
---|---|
[JAVA]codeUp 기초100제 자바 1065~1077번 (반복문) (0) | 2020.02.26 |
[JAVA]codeUp 기초100제 자바 1010~1020번 (0) | 2020.02.25 |
[JAVA]codeUp 기초100제 자바 1001~1008번 (0) | 2020.02.25 |
댓글