티스토리 뷰
1001번부터 1099번까지 기초 100문제를 자바로 풀어보았다.
자바를 기초부터 다시 리마인드할 수 있었다😆
출력
" 출력을 원한다면 System.out.printf(" \"");
\출력을 원한다면 System.out.printf(" \\");
문자열은 공백없이 붙게된다, 공백을 위해 " "추가해도 된다 System.out.println(a+" "+b);
년월일을 출력할때 System.out.printf("%04d.%02d.%02d",year,month,day);
%02d 2칸을 이용해 출력하는데, 2칸이 아니면 0을 붙인다라는게 포함
number의 변수를 출력시에 11자리까지 반올림해서 출력하겠다System.out.printf("%.11f",number);
8진수, 16진수 출력시 System.out,printf("%o,%x,%X")
16진수 대문자출력을 원하면 %X
입력
정수 scanner.nextInt(); , scanner.nextLong(); int형보다 큰 Long
실수 scanner.nextFloat();
16진수로 받고싶다면, scanner.nextInt(16);
String형으로 받는 scanner.next();, scanner.nextLine();
scanner.nextLine(); 은 공백을 포함해서 받기때문에 split()이 필요
String number = scanner.nextLine(); String [] str = number.split(""); int a = Integer.parseInt(str[0]) ;
split("") 은 공백을 기준, 한문자씩 자를때 사용한다
한문자씩 자르고 난후에 변환을 해줘도 된다. Integer.parseInt()으로 int형으로 변환
실수를 정수, 소수로 나누고 싶다면 split("\\.")을 해준다
string에서 변환을 해줄수도 있다 -> 소숫점 아래 6자리까지 받고싶다
String a = sc.nextLine(); String x6 = String.format("%.6f",a);
StringTokenizer
간단하게 문자열을 토큰단위로 나눠주는 함수 (split과 동일하게 쪼갠다 )
hasMoreTokens이라는 내장함수가 존재 -> 토큰이 남았는지 확인하는 메소드
import java.util.StringTokenizer; //import에다가 부르기 String date = sc.nextLine(); StringTokenizer token = new StringTokenizer(date,"."); int [] arr = new int[3]; while(token.hasMoreTokens()){ arr[i] = Integer.parseInt(token.nextToken()); i++; }
split 대신에 토큰을 사용함으로서, 남아있는 토큰이 있는지 확인할 수 있다.
변환
8진수->10진수 int num = Integer.valueOf(number,8);
string형->문자형 char c = sc.nextLine().charAt(0);
아스키코드값은 char형이어야 출력이 된다 char c = (char)num;
연산자
~,&,|,<<,>> 비트연산자는 bit로 계산을 한 후에 10진수로 출력한다
시프트 연산자 <<는 2를 곱하고, >>는 2를 나누어야한다
a<<b는 a를 b만큼 거듭제곱하는것이다.
자바에선 제곱연산자 대신에 제곱함수Math.pow(a,b)를 사용한다.
등차수열, 등비수열
등차: a + d*(n-1)
등비: (a*Math.pow(r,n-1))
세개의 숫자 중에서 가장작은 숫자는?
(a<b?:a:b)<c?:(a<b?:a:b):c 으로 구하면 된다.
여러 숫자중에서 가장 작은 숫자는?
min이라는 변수를 하나 만들어 계속 비교하는식으로 해야한다
%나머지 연산자가 쓰일때
- 짝수, 홀수인지 확인할때 a%2 ==0 0이면 짝수
- 최소공약수 , 두개를 무언가가 만족할때를 구할때
day%a==0, day%b==0 day는 a, b를 모두 만족할때 구한다
조건문, 반복문
for(){ if()continue; System.out.println(3); }
if문을 만족한다면 continue를 실행하게 된다.
continue문은 다음반복으로 바로 진행한다 -> 즉 3은 출력되지 않는다.
if() else if() else
else if 문도 조건써줘야 한다.
switch(num){ case 1: System.out.println(1); case 2: System.out.println(2); break; default: break; }
break 문이 없는 case 1이 실행된다면 case2문까지 출력된다
break문 필수~
이중배열
배열선언
int [] arr = new int[크키]; int [][] arr = new int[크][기];
배열조회
for(int i =0; i<arr.length; i++){ for(int j =0; j<arr[i].length; j++){ System.out.println(arr[i][j]); } }
이렇게 행부터 쓰면 arr[0][0]부터 조회가 된다.
BufferReader, BufferWriter
-> 버퍼를 이용해 읽고 쓰는 함수
-> 버퍼를 활용하기에, 기존의 scanner, println 보다 빠르다
-> 받는 데이터가 String형으로 받기에, 형변환을 따로 해줘야한다
-> 데이터를 라인단위로 읽을 수 있다.
- import java.io.BufferedReader; import.java.io.BufferedWriter; import.java.io.InputStreamReader; import.java.io.OutputStreamReader;
- throws IOExceptionBufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String arr[] = br.readLine().split(""); //라인단위로 읽은 후에, split으로 쪼개기 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); bw.write(i+k); //print대신에 write를 써주면 된다. //flush(). close()는 반드시 필요 bw.flush(); //남은거 모두 출력하는 메소드 bw.close();
- 두가지를 해줘야 BufferedReader, BufferedWriter를 쓸 수 있다.
'java' 카테고리의 다른 글
자바 자동 형변환 Promotion (0) | 2021.12.27 |
---|---|
소수 구하기 코드 (0) | 2021.11.26 |
자바 - 코드업 기초 (1041-1050) (0) | 2021.08.12 |
자바-코드업 기초 (1021-1040) (0) | 2021.08.03 |
자바 -코드업 기초 (1010-1020) (0) | 2021.07.29 |
- Total
- Today
- Yesterday
- 파이썬
- 기초100제
- 이클립스
- 다이어그램
- 백엔드
- sql
- UML
- 객체지향모델링
- 개인프로젝트
- java
- 자바
- eclipse
- web
- sourcetree
- 코딩
- set
- 안드로이드
- 코드업기초
- 파이썬기초
- 레이아웃
- 코드업
- 깃
- JPA
- 자바기초
- 객체지향
- 스프링
- 유스케이스
- 모델링
- laravel
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |