본문 바로가기

JAVA의 정석

(39)
Arrays로 배열 다루기 Arrays 클래스의 주요 메서드 메서드 설명 boolean Arrays.equals(배열 , 배열) [다차원 시 deepEquals] 배열 A와 배열 B가 같은 값을 담고 있는지 리턴해준다. Arrays.toString(배열) [다차원 시 deepTostring] 반복문 없이 배열의 값들을 리턴해준다. Arrays.copyOf(배열, int to) 배열의 처음부터 지정된 곳 까지 배열을 복사해준다. (to 미포함) Arrays.copyOfRange(배열, int from , int to) 지정된 곳 부터 지정된 곳 까지 배열을 복사해준다. (to 미포함) Arrays.sort(배열) 배열을 작은 수 부터 큰 수로 정렬해준다. 1) 배열의 비교와 출력 - equals() , toString() 앞 장에서..
String 배열과 String 클래스의 주요 메서드 배열의 타입이 String 이여도 선언과 생성 방법은 다르지 않다. c언어에서는 문자열을 char 배열로 다루지만, 자바에서는 그에 관련된 기능들을 함께 묶어서 클래스에 정의한다. 객체지향개념이 나오기 이전의 언어들은 데이터와 기능을 따로 다루었지만, 객체지향언어에서는 데이터와 그에 관련된 기능을 하나의 클래 스에 묶어서 다룰 수 있게 한다. char배열과 String 클래스의 차이는 String 객체는 읽을 수만 있을 뿐 변경할 수 없다는 것이다. 예를 들어 ) String str = "Java" ; str = str + "8" ; // "Java8"이라는 새로운 문자열이 str에 저장된다. System.out.println(str) // "Java8" String 클래스의 주요 메소드 메서드 설명 c..
배열의 생성,초기화 / 배열의 활용 C언어에서는, 줄곧 배열의 생성을 위와 같이 해왔다. 하지만 자바에서는 컴파일 조차 되지 않는 모습을 보이고 있다. 자바에서의 배열의 생성, 초기화에 대해서 알아보자. 자바에서의 배열의 생성은 위와 같다. 배열의 타입과 중괄호, 배열의 이름 그리고 new 라는 생소한 단어 그리고 다시 배열의 타입과 크기가 이루어져있다. new는 후에 객체 파트에서도 다룰 명령어이지만, 객체를 생성할 때 쓰는 명령어이다. 자바에서는 배열조차도 객체로 취급된다. 배열을 생성하는 방법은 생성과 초기화를 동시에 하는 방법. (new int[]) 생략 가능) public class ArrayTest { public static void main(String[] args) { int[] array = new int [] {1,2,..
전위증감연산자와 후위증감연산자 증감 연산자에는 전위 증감연산자와 후위 증감연산자가 있다. for문이나, 메소드에서 리턴 값을 줄 때 특히나 많이 사용하게 되는 증감 연산자는 어떤 변수에 앞이나 뒤에 ++ , -- 를 붙이는 것을 말한다. 처음 코딩을 접했을 때 증감 연산자의 개념에 혼란을 겪었을 때가 있었는데, 오늘 일기를 통해서 더 이상 헷갈리지 않았으면 한다. 우선, 제일 쉬운 변수 x에 5라는 값을 대입하고 전위증감 연산자를 출력값에 주도록 해보자 . 당연히도 전위 증감연산자 이기 때문에 프로그램에 6으로 출력되었다. 그렇다면 후위 증감연산자는 어떨까 ? 이번 프로그램에선 5의 값이 출력되었다. ++의 위치만 바꿔주었을 뿐인데 둘의 결과는 차이를 보이고 있다. 증감연산자의 위치가 어디냐에 따라 변수의 값이 달라졌다. 그렇다면 후..
형변환 응용 (대문자를 소문자로 소문자를 대문자로 )(1) 오늘은 형변환을 응용한 예제를 코드로 작성해보려 한다. 우선 처음으로는 c언어의 문법과 유사하게 풀어낸 대소문자 변환프로그램을 작성한 후, 자바문법스러운(?) 대소문자 변환프로그램을 작성해보자. 우선 ASCII 코드 대문자를 살펴보고, A부터 Z는 숫자 65 ~ 90 소문자 a는 97 부터 122임을 알아야한다. 우선 str.length() 을 통해 배열의 길이까지 반복하여, 문자열에 입력 받은 문자들을 지난번에 사용했던 .charAt() 메소드를 통해, ch[]라는 문자배열에 반환받는다. 그리고 ch[] 문자배열에 담긴 문자들을 조건문을 사용해 32만큼 더해주거나 빼준다. (대문자로 입력받았다면 +32 만큼, 소문자로 입력받았다면 -32만큼 ) 그리고 이 문자배열을 반복하여 출력한다. 그런데, 컴파일 ..
타입간의 변환방법 1. 문자열을 문자로 변환하는 법 우선 문자열 str 에 "3" 이라는 문자열을 저장해두자. 그 후 charAt(0)을 이용하여, str을 문자열이 아닌 문자로 출력해보자. 문자열 "3" 이 문자 '3'이 되었지만 , 가시적으로 문자열이 문자로 바뀌었는지는 알 수 없으니 char타입의 변수를 만들어 저장해본다면 charAt이 제대로 작동되었는지 확인할 수 있을 것이다. 그럼 이 과정을 통해 char 타입으로 바뀌었는지 확인해보자 . char 타입으로 컴파일 오류없이 저장되는 것을 보니, str.charAt(0) 이라는 메소드에서 성공적으로 char 타입의 리터럴을 리턴했다는 것을 확인할 수 있다. 지금까지는 하나의 문자열만 문자로 변환해 보았다. 그렇다면 두 개 이상의 문자열 중 골라서 문자로 바꾸고 싶..
숫자를 문자열로 문자열을 숫자로 1) 숫자를 문자열로 바꾸려면 어떻게 할까 ? 우선 스캐너를 불러와 숫자를 입력 받는다 . 그리고 입력받은 숫자를 화면에 출력한다. 하지만 "입력한 숫자 : " 라는 문자열과 + num이 되었으므로 아까 전 입력받은 숫자는 문자열로 표기된다. 우리는 이 과정을 통해 지금까지 자연스레 출력해왔던 숫자들이 모.두 문자열로 출력되어왔다는 사실을 알 수 있다. 예를 들어보자. 빈 문자열 "" + num + 7 을 한다면 무엇이 나올까 ? 당연히 입력받은 숫자 3과 7의 합이 10이 나올 것 같지만 "" + num 즉 "3" 이되고 , "3" + 7 이되어 "37"의 숫자가 화면상에 출력된다. 우리는 자연스럽게 숫자를 문자열로 출력해왔다는 사실을 이 과정을 통해 증명한 셈인 것이다. 그렇다면 어떻게해야 입력받은 ..