a : 97
A : 65
그렇다면 한글은 아스키 코드로 어떻게 나올까?
System.out.println((int) '가'); // 아스키코드 번호 출력됨
System.out.println((int) '힣');
'안'은 한글인지 확인해보자
public static void main(String[] args) {
System.out.println(isHanguel('안')); // isHanguel 메서드실행문 '안'이라는 인자
}
static boolean isHanguel(char c) { // (char c)는 매개변수 // static 메서드. 왜? 객체 생성없이 실행하니까
return c >= '가' && c <= '힣';
// return c >= 44032 && c <= 55203; '가' '힣' 대신 아스키코드를 직접 넣어 비교 할 수 있다
String s1 = "하";
s1 += "하";
String s2 = "하하";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
String은 클래스다
1번예시
String s1 = "하하"; // -> System.out.println(s1 == s2); true
String s2 = "하하";
2번예시
String s1 = new String("하하"); // -> System.out.println(s1 == s2); false
String s2 = new String("하하");
// 자바에서 문장은 왠만하면 아껴쓰자 주의다
String s = "*";
String k = "*";
// s값 증가 전에는 s와 k는 한문장 "*"을 바라본다. 결국 "*"이라는 문장이 두개 생성되는게 아니라 하나를 가지고 재활용해서 메모리를 아껴쓴다라는 뜻이다
s += "*";
s += "*";
s += "*";
System.out.println("s");
System.out.println("k");
// 그러나 s값 증가 후엔 s -> "*" "**" "***" "****"
// k는 -> "*"
// 이렇게 되면 메모리를 많이 사용하게 된다
// 이런 특징을 String 불변성이라고하는데
// 이걸 해결위해선 StringBuilder를 사용해서 메모리를 아끼면 된다.
StringBuilder sb = new StringBuilder();
sb.append("*");
sb.append("*");
sb.append("*");
sb.append("*");
// 문장을 이렇게 만드는 것이 성능이 더 좋다. 메모리를 아끼기 때문에.
Scanner는 자바에 이미 있는 클래스이다 그래서 사용할 때
java.util의 Scanner 클래스에서 import해야지만 사용할 수 있다.
import java.util.Scanner;
이클립스에서는 Scanner객체생성 후 Ctrl+Shift+O를 누르면 자동 import가 된다.
Scanner sc = new Scanner(System.in); // Scanner 객체 생성
String str = sc.nextLine(); // 입력받은 문자열을 str에 저장
.nextLine() 뿐만 아니라
.next()
.nextInt()
.nextDouble()
등등 다양한 메서드가 존재하고, 입력하는 값에 따라 알맞게 사용해야한다.
그렇게하지 않으면 InputMismatchException이 발생한다.
String inputDiv = input;
// inputDiv 라는 변수에 문자인 input값을 넣겠다
String inputDiv = input.split(" ");
// 문자인 input값을 공백을 기준으로 쪼갠다
// 에러가 발생할거다
// 쪼개지면 하나의 값이 아닌 복수개의 값이 되어 inputDiv 변수에 담을 수 없기때문이다. 변수엔 하나의 값만 들어 갈 수 있으니까.
String[] inputDiv = input.split(" ");
// 배열을 사용해서 여러개의 값을 넣을 수 있게 해주면 된다
int n1 = Integer.parseInt(변수명[0]);
입력: 1 2
출력: 3
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
String[] inputDiv = input.split(" ");
int n1 = Integer.parseInt(inputDiv[0]);
int n2 = Integer.parseInt(inputDiv[1]);
System.out.println(n1 + n2);
sc.close();