문자열 관련
String과 StringBuilder
문자열을 붙일때 String으로 진행하면 메모리할당과 해제를 반복하므로 StringBuilder가 더 효율적이다.
public class Main {
public static void main(String args[]){
String str1 = "문자열1";
String str2 = "문자열2";
System.out.println(str1+str2);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("test ").append("append");
String str = stringBuilder.toString();
//String str = stringBuilder;
// String에 StringBuilder를 그대로 넣을 순 없다. toString()을 붙여야 한다
System.out.println(stringBuilder);
System.out.println(stringBuilder.toString());
}
}
삼항 연산자( 조건문? 참:거짓) (예시)
class Solution {
public String solution(int num) {
String answer = "";
//num은 0이상의 자연수만 입력가능할때
//num값을 2로 나누었을때, 나머지가 0이면 Even을 홀수면 Odd를 반환한다.
answer = num%2 ==0? "Even":"Odd" ;
return answer;
}
}
Math 클래스(import java.lang.Math에 포함되어있어서 따로 선언하지 않아도됨)
System.out.println(Math.min(1,100)); //1
System.out.println(Math.max(1,100)); //100
System.out.println(Math.abs(-10)); //10
System.out.println((int)(Math.random() * 10)); // 0~9 사이 난수 발생
System.out.println((int)(Math.random() * 100)); // 0~99 사이 난수 발생
System.out.println((int)(Math.random() * 1000)); // 0~999 사이 난수 발생
double a= 3.141592;
System.out.println("첫째 자리 반 올림 : " + Math.round(a));
System.out.println("둘째 자리 반 올림 : " + Math.round(a * 10) / 10.0);
System.out.println("첫째 자리 올림 : " + Math.ceil(a));
System.out.println("셋째 자리 올림 : " + Math.ceil(a * 100) / 100.0);
System.out.println("첫째 자리 버림 : " + Math.floor(a));
System.out.println("넷째 자리 버림 : " + Math.floor(a * 1000) / 1000.0);
System.out.println(Math.pow(5,3)); //5의3제곱
System.out.println(Math.sqrt(16)); //16의 제곱근 4
System.out.println(Math.subtractExact(5,10)); //두수의 차이 음수로도 나오므로 절대값으로 감싸주는것도 좋음
자료형 변경 및 확인
System.out.println(str.getClass().getName()); //return java.lang.String
Integer.parseInt(str); //str 문자열을 Int형으로 변환
Integer.toString(int); //숫자형을 문자열로 변환
// 숫자형변수+""; 이렇게만해도 숫자형이 문자형으로변환됨
값을 입력 받을때
1.Scanner(예시)
import java.util.Scanner; //util.Scanner클래스를 임포트 한다.
Scanner sc = new Scanner(System.in); //여기에서 System.in 는 입력한 값을 바이트 단위로 읽음
String name = sc.next(); //공백이전까지의 문자열을 입력받음
int name = sc.nextInt(); //공백이전까지의 숫자열 입력받음
double name = sc.nextDouble(); //공백이전까지의 실수 입력받음
String name = sc.nextLine(); //문자열 전체를 입력받음
char name = sc.next().charAt(idx); //문자열 중 idx번째의 값만 가져옴 idx가 1이고 abcde입력시에 b를 반환
2.BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class test {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 선언
System.out.println("원하는 문자 하나를 입력하세요.");
String s = br.readLine();
System.out.println("원하는 숫자 하나를 입력하세요.");
int i = Integer.parseInt(br.readLine());
System.out.println("String : " + s);
System.out.println("Int : " + i);
}
}
여기에서 Scanner와 BufferedReader의 차이는
이고 일반적으로 입력받을때 Scanner를 쓰지만, 알고리즘 공부를하면 입력때 배우는게 BufferedReader다. 왜냐면 Scanner에 비해서 속도가 엄청나게 빠르기때문이다. 그러므로 알고리즘 공부를하면 꼭 익혀두는게 좋다고 생각한다.
코딩테스트 참고
코딩테스트 준비방법 -쩜튜브https://solved.ac/problems/level 실버까진 풀자 SQL은 프로그래머스 (링크)
반응형
'Study > Algorithm' 카테고리의 다른 글
프로그래머스-가운데 글자 가져오기(java) (0) | 2022.07.13 |
---|---|
알고리즘 문제풀이 모음 (0) | 2022.07.08 |
프로그래머스-짝수와 홀수(java) (0) | 2022.07.07 |
프로그래머스-직사각형 별찍기(java) (0) | 2022.07.07 |
[java]프로그래머스-2016년 (0) | 2022.06.24 |