publicclassArrayEx13_1{ // 10진수를 2진수로 변환 publicstaticvoidmain(String[] args){ Scanner scan = new Scanner(System.in);
int a = scan.nextInt(); String result = ""; ArrayList<String> arr = new ArrayList(); while (a > 0) { int re = a%2; arr.add(Integer.toString(re)); a = a/2; } Collections.reverse(arr); System.out.println(arr.toString()); } }
char배열과 String클래스
String클래스는 char배열에 여러 가지 메서드를 추가하여 확장한 것이다. 객체지향개념이 나오기 이전의 언어들은 데이터와 기능을 따로 다루었지만, 객제지향언어에서는 서로 관련된 것들끼리 데이터와 메서드를 구분하지 않고 함께 묶는다.
char배열과 String클래스의 차이
String객체는 읽을 수만 있을 뿐 내용을 변경할 수 없다.
1 2 3
String str = "java"; str = str+"8"; // java8 이라는 새로운 문자열이 str에 저장된다. System.out.println(str) // java8
위의 주석에서 보이듯이 str에 새로운 문자열이 생성되는 것이지 str의 내용이 변경되는 것이 아니다.
int num1 = Integer.parseInt(args[0]); char operator = args[1].charAt(0); int num2 = Integer.parseInt(args[2]); int result = 0;
switch (operator) { // operator는 char type임으로 switch 조건식에 사용가능 case'+': result = num1 + num2; break; case'-': result = num1 - num2; break; case'*': result = num1 * num2; break; case'/': result = num1 / num2; break; default: System.out.println("지원하지 않는 형식입니다."); } System.out.println("result : "+ result); }
}
switch문의 제약조건
switch문의 조건식 결과는 정수 또는 문자열이여야 한다.
case문의 값은 정수 상수만 가능하며, 중복되지 않아야 한다.
jdk 1.7이후로 switch문의 조건문에 문자열이 가능하다.
1 2 3 4 5 6 7 8 9 10
int num, int result; finalint ONE = 1; swtich(result) { case'1': // OK, 문자 상수(정수 상수 49와 동일) case ONE: // OK, 정수 상수 case"YES": // OK, 문자열 상수, JDK 1.7부터 허용 case num: // Error, 변수 불가 case1.0: // Error, 실수 불가 }