728x90
반응형
728x90
반응형
String 메서드 1. String to Character Character를 String 값으로 변경할 때 String클래스를 선언하여 변경이 가능하다. char[] ch = {'a','b','c','d'}; String st = new String(ch); System.out.println(st); 2. Character to String 반대의 경우에는 charArray System.out.println(st.toCharArray()); 3. toCompare 사전의 순서로 String의 값을 비교해주는 메서드 abc의 순서이므로 동일한 순서일경우 0, 사전보다 뒤에 있으면 -1(음수), 앞에 위치하면 1(양수)를 출력해줌 char을 int로 형변환하여 연산한 값이 출력됨 이 메서드 같은 경우에는..
메서드 오버라이딩 다형성을 통해 조상의 자료형으로 자식의 클래스를 호출하면 일반적으로 조상의 멤버변수와 메서드만 호출할 수 있다. 하지만 상속의 조건하에서 오버라이딩된 자식의 메서드는 동일한 이름으로 되어있기 때문에 호출 가능하다. public class Overriding { public static void main(String[] args) { Speaker speaker = new Speaker(); Speaker speaker2 = new BaseEnSpeaker(); speaker2.setVolumeRate(7); System.out.println(speaker2.getVolumRate()); speaker2.showCurrentState(); //출력문: //7 //베이스 크기: 0 //자료..
짝수번째 숫자만 치환 문제: 모든 짝수번째 숫자를 * 로 치환하시오.(홀수번째 숫자,또는 짝수번째 문자를 치환하면 안됩니다.) Example: a1b2cde3~g45hi6 → a*b*cde*~g4*hi6 순서: 일반 String연산이 아니라 StringBuilder를 사용하여 메모리 할당을 최소화 for문에서 charAt으로 문자를 하나씩 가져와서 두번째 문자 그리고 그 문자가 숫자일 경우 *을 대신 삽입 아닐 경우 본래의 문자열 삽입 출력문: a*b*cde*~g4*hi6 public class EvenNChange { public static void main(String[] args) { StringBuilder result = new StringBuilder(); String ex = "a1b2cd..
String 클래스 String클래스는 각각의 메모리를 할당하여 immortable, 즉 내용을 변경할 수 없는 불변 결과값을 출력해준다. 따라서 String연산은 서로 다른 메모리의 값을 합쳐서 새로운 메모리에 할당해주기 때문에 연산의 효율이 떨어진다. 문자의 결합이나 연산이 잦다면 StringBuffer나 StringBuilder를 활용해야 효율이 좋다. String으로 데이터를 할당하면 서로의 메모리를 공유하여 비교연산자를 써도 true가 나오지만 아래처럼 new로 새로 할당해준 경우는 false가 도출된다. 따라서 값을 비교하는 경우는 반드시 equals를 사용할 것 String str = "123"; String str1 = "123"; System.out.println(str == str1);..
Object 클래스 모든 클래스의 최고 조상 - 오직 11개의 메서드만 가지고 있음 1. equals() 객체 자신(this)과 주어진 객체의 주소를 비교, 따라서 아래의 코드는 false가 출력된다 public static void main(String[] args) { test t = new test(0); test t2 = new test(0); System.out.println(t.equals(t2)); //this t 를 object t2랑 비교하는 것이기 때문에 객체의 주소가 다르므로 false } } class test{ int i; public test(int i) { this.i = i; } } 위의 값을 true로 바꾸기 위하여 overriding을 해줘야하는데 아래와 같이 실행할 수 ..
StringTokenizer 구분자를 제외하고 변수의 data를 읽어오는 기능을 포함하는 메서드 메서드를 선언하고 () 안에 읽어올 데이터 변수와 구분자를 ""로 선언해주면 그 구분자를 제외하고 출력시켜준다. 읽어올 데이터가 있으면 true를 반환하고 더이상 꺼내올 데이터가 없으면 false를 반환한다. 따라서 while문을 사용하여 데이터를 꺼내오는 것이 적합하다. 데이터를 읽어올 때 nextToken을 사용하여 데이터를 읽어올 수 있다. public static void main(String[] args) { String data = "11:22:33:44:55"; StringTokenizer st = new StringTokenizer(data, ":"); //:를 기준으로 데이터가 있느냐를 파악하..
숫자게임 반복 숫자가 나오지 않을 경우 try - catch로 게임을 재시작하도록 만드는 프로그램 아래의 코드처럼 do-while을 사용하였고 Scanner 함수를 사용하여 일반적인 숫자입력게임을 만들었다. 차이점(애먹었던 점) Scanner 클래스를 try문안에 써주어야 정상작동된다. 새로운 Scanner의 메모리가 할당되고 생성자를 통해 전에 넣어주었던 값을 초기화를 시켜야 무한반복을 막아준다. catch구문에는 오류가 날 경우 출력하고 싶은 문구를 적고 continue를 써주면 반복문이 다시 반복된다. public static void main(String[] args) { Random r = new Random(); int ran = r.nextInt(100)+1; System.out.printl..
사용자 정의 예외처리 요즘 유행하는 비트코인을 가져와서 간단한 사용자 정의 예외처리 예시를 만들었다. 입금된 비트코인 잔고보다 인출되는 비트코인 잔고가 더 많으면 throws로 지정된 오류 클래스로 보내기로 했고 오류 클래스에서 지정된 연산 수행 후에 toString 클래스로 오류전용 지정 문구를 출력하도록 만들었다. class CoinAccount extends BalanceInsufficientException{ private double BTCaccount; private double ETHaccount; public CoinAccount(double bTCaccount, double eTHaccount) { super(); BTCaccount = bTCaccount; ETHaccount = eTH..