언어/Java
[Java]char 배열 String으로 만들기
char 배열을 String으로 바꾸는데 3가지 방법이 있음! String 생성자 String.valueOf() String.copyValueOf() 1. String 생성자 public class CharArrToString { public static void main(String[] args) { char[] charArr = { 'H', 'e', 'l', 'l', 'o' }; // String 생성자를 이용한 변환 String str = new String(charArr); System.out.println(str); // Hello } } 2. String.valueOf() public class CharArrToString { public static void main(String[] args..
[Java]split() 메서드로 문자열 자르기 + String.join()으로 합치기
split() 메서드로 문자열 자르기 public String split(String regex) public String split(String regex, int limit) regex : 문자열을 구분하기 위한 정규 표현임. limit : 분류할 문자열의 수. 분류할 수 있는 단어가 10개인데 limit 가 5 이면 5개만 구분하고 나머지는 통채로 출력함. 1. 배열로 만들어서 반환 public class Split { public static void main(String[] args) { String str1 = "일과 놀이 사이에는 경계가 없다."; String[] words = str1.split("\\\\s"); for (String wo : words ){ System.out.printl..
[Java]Comparable과 Comparator의 이해
Comparable과 Comparator 일단 둘 다 인터페이스(interface)임. 즉, Comparable 혹은 Comparator을 사용하고자 한다면 인터페이스 내에 선언된 메서드를 '반드시 구현' 해야함. Comparable 공식 문서 Comparable (Java Platform SE 8 ) 공식 API 문서임. Comparable을 보면 Comparable 인터페이스에는 compareTo(T o) 메서드 하나가 선언되어있는 것을 볼 수 있는데, 이 말은 만약 Comparable을 사용하고자 한다면 compareTo 메서드를 재정의(Override/구현)을 해주어야 한다는 것임. Comparator 공식 문서 Comparator (Java Platform SE 8 ) Comparator는 보면..
[Java]StringBuilder.setChar() 메서드
.setChar() 메서드 StringBuilder answer = new StringBuilder(phone_number); for(int i = 0; i < phone_number.length()-4; i++) { answer.setCharAt(i, '*'); } return answer.toString(); 인덱스에 해당하는 문자를 '*'로 바꿔줌 코딩테스트 연습 - 핸드폰 번호 가리기
[Java]배열의 복사(2차원 배열의 복사)
깊은 복사 1차원 배열의 깊은 복사의 경우 위에서 소개한 메서드를 사용하면 쉽게 복사가 가능함. 하지만 2차원 배열의 경우 위의 메서드를 활용해도 깊은 복사가 되지 않음. 그 이유는 위와 같은 2차원 배열의 구조 a[x][y]에서 배열을 복사하는 메서드를 사용하게 되면 y좌표를 가리키는 주소 값만 있는 a부분만 깊은 복사가 되고 값이 있는 a[x][y]는 깊은 복사가 되지 않음. 그렇기에 2차원 배열을 복사하기 위해서는 for문을 돌리면서 값이 있는 a[x][y]를 일일이 복사해주어야 함. 이중 for문 활용 public class Array_Copy{ public static void main(String[] args) { int a[][] = {{1,2,3},{4,5,6,},{7,8,9}}; int[..
[Java]배열의 복사(1차원 배열의 복사)
얕은 복사 public class Array_Copy{ public static void main(String[] args) { int[] a = { 1, 2, 3, 4 }; int[] b = a; } } = 연산자는 주소를 이어준다는 의미임. 해당 코드로 a의 배열을 b배열로 = 연산자를 활용하여 대입하면 깊은 복사가 되지 않고 얕은 복사가 됨. 그렇기에 b배열의 값을 수정하여도 a배열까지 같이 수정되어버리는 상황이 나옴. 이렇게 되면 사실상 배열을 복사하는 의미가 없음. 깊은 복사 public class Array_Copy{ public static void main(String[] args) { int[] a = { 1, 2, 3, 4 }; int[] b = new int[a.length]; for..
[Java]문자열 비교하기 == 와 equals()의 차이점
문자열 비교하기 == 와 equals()의 차이점 문자열 비교하기 == 와 equals()의 차이점 자바에서 일반적인 데이터 타입의 비교는 `==` 라는 연산자를 사용하여 비교함. 하지만 String 문자열의 값을 비교할 때에는 `equals()` 라는 메서드를 사용하여 비교함. `==` 연산자 public class compare { public static void main(String[] args) { String s1 = "abcd"; String s2 = new String("abcd"); if(s1 == s2) { System.out.println("두 개의 값이 같습니다."); }else { System.out.println("두 개의 값이 같지 않습니다."); } } } 결과: "두 개의 ..