자바 코테 정리

songh·2025년 1월 22일

알고리즘

목록 보기
21/21
import java.util.*;
import java.util.stream.Collectors;
import java.io.*;
public class Solution{
	public static void solution() throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//		StringTokenizer st = new StringTokenizer(br.readLine());
		
		// 1. String 메서드
		
		String str = "java";
		// 길이 반환
		str.length();
		
		// 빈 문자열 여부 확인
		str.isEmpty(); // false
		
		// 문자 찾기(특정 인덱스의 문자, 특정 문자의 인덱스 찾기)
		str.charAt(0); //해당하는 인덱스 문자 반환 : j
		str.indexOf("a"); // 해당하는 문자의 인덱스 반환 : 1
		str.lastIndexOf("a"); // 해당하는 문자의 마지막 인덱스 반환 : 3
		
		// 문자 자르기
		str.substring(0, 2); // 인덱스 0이상 2미만의 문자열 반환 : ja
		str.substring(2); // 인덱스 2이상의 문자열 반환 : va
		
		// 문자 치환
		str.replace('a', 'i'); // 모든 [기존문자], [바꿀문자] : jivi
		str.replaceAll(".", "/"); // [정규식], [바꿀문자열] : ////
		str.replaceFirst("v", "a"); // 첫번째로 등장하는 [기존문자열], [바꿀문자열] : aava
		System.out.println(str.replace('a', 'i'));
		System.out.println(str.replaceAll(".", "/"));
		System.out.println("javajavajava".replaceFirst("java", "a"));
		
		// 문자 동일 여부 판단하기
		/*
		 * string은 reference 객체여서 = 비교시 주소값 비교를 한다.
		 * 따라서 equals를 사용한다.
		 * */
		str.equals("java");
		System.out.println(str.equals("java"));
		
		// 문자 비교(사전순 비교)
		/*
		 * str = jbva면  0
		 * str < jbva(사전순으로 str이 앞이면, str-jbva 는 음수니까) -1
		 * str > jbva(사전순으로 str이 뒤이면, str-jbva 는 양수니까) 1
		 * 
		 * str과 jbva가 마지막 문자만 다르면, 마지막 문자의 사전순 차이를 반환
		 * */
		str.compareTo("jbva"); // str-jbva는 음수니까 -1
		str.compareTo("javc"); // str-javc는 음수니까 -2
		System.out.println(str.compareTo("jbva"));
		System.out.println(str.compareTo("javc")); 
		
		// 문자 포함 여부 판단
		str.contains("ja"); 
		System.out.println(str.contains("ja"));
		
		// 문자열 분리
		String[] arr1 = str.split(" "); // 공백을 기준으로 문자열을 분리해서 String[]배열로 반환 : ["java"]
		String[] arr2= str.split(""); // 띄어쓰기 없는 문자열을 분리해서 String[]배열로 반환 : ["j", "a", "v", "a"]
		
		System.out.println(arr1); // 주소값 출력됨		
		
		// 배열출력방법 1 : 반복문, for-each문
		for(int i=0;i<arr1.length;i++) {
			System.out.println(arr1[i]);
		}
		
		for(String value:arr1) {
			System.out.println(value);
		}
		
		// 배열 출력 방법 2 : Arrays.toString
		System.out.println(Arrays.toString(arr1));
		
		// char -> String 변환
		char a = 'a';
		Character.toString(a);
		
		// 문자 앞뒤 공백 제거
		str.trim(); // 문자열 사이의 공백은 제거하지 않는다.
		
		// 문자열의 접두어, 접미어 확인하기
		str.startsWith("abc");
		str.endsWith("abc");
		
		// 문자 <-> 숫자 변환
		Integer.parseInt("100"); // 문자열 "100"을 숫자 100으로 변환
		Integer.toString(100); // 숫자 100을 문자열 "100"으로 변환
		int b = Integer.parseInt(10+""); // Integer.toString을 안써도 문자열+숫자하면 문자열로 처리됨
		System.out.println(Integer.parseInt("100"));
		System.out.println(Integer.toString(100)); // Character.toString()도 그렇고 사용법이 동일해보임
		System.out.println(Integer.parseInt(""+100));
		 
		// 진수변환
		int decimalNumber = 25; // 변환할 10진수
		
		// 10진수를 2진수로 변환
		String binary = Integer.toBinaryString(decimalNumber);
		System.out.println("2진수 : "+ binary);
		
		// 10진수를 8진수로 변환
		String octal = Integer.toOctalString(decimalNumber);
		System.out.println("8진수 : "+octal);
		
		// 10진수를 16진수로 변환
		String hex = Integer.toHexString(decimalNumber);
		System.out.println(hex);
		
		
		
		// 2. list 관련 메서드
		/*
		 * list 인터페이스는 linkedList, ArrayList, Stack, Vector-> 순서가 있는 저장공간의 상위 인터페이스
		 */
		
		List<String> list = new ArrayList<>();
		List<String> list2 = new Stack<>();
		List<String> list3 = new Vector<>();
		List<String> list4 = new LinkedList<>();
		
		// 요소 삽입
		list.add("one");
		
		// 특정 인덱스에 요소 삽입
		list.add(0, "zero");
		
		// 리스트 병합(추가되는 리스트가 뒤로 감)
		List<String> merge_list = new ArrayList<>();
		list.addAll(merge_list);
		
		// 특정 요소의 첫번째 인덱스 반환
		list.indexOf("zero");
		
		// 특정 요소의 마지막 인덱스 반환
		list.lastIndexOf("zero");
		
		// 특정 인덱스 값 삭제
		list.remove(0);
		
		// 특정 요소의 첫번째 값 삭제
		list.remove("zero");
		
		// 리스트 차집합
		list.removeAll(merge_list); // list에서 merge_list에 있는 값 삭제
		
		// 리스트 교집합
		list.retainAll(merge_list); // list에서 merge_list에 있는 값을 제외한 모든 값 삭제
		
		// 리스트 비우기
		list.clear();
		
		// 리스트가 비었는지 확인 -> String 과 똑같음
		list.isEmpty();
		
		// 리스트 길이
		list.size();
		
		// 리스트 특정 요소 포함 여부 체크
		list.contains("one");
		
		// 리스트에 다른 리스트 요소가 전부 포함되는지 여부 체크
		list.containsAll(merge_list);
		
		// 람다식 사용해서 요소 제거하기
		list.removeIf(x->x.equals("one"));  //요소가 one이면 제거
		
		// list 출력하기 -> 배열은 바로 출력안되지만, list(+콜렉션 프레임워크)는 다른거 할 필요 없이 바로 출력된다.
		System.out.println(list);
		
		// Array <-> List 변환
		
		// 1. Array -> List 변환하기
		String[] str_arr = {"ah", "jip", "gago", "sipda"};
		List<String> atr_list = new ArrayList<>(Arrays.asList(str_arr));
 		
		// 2. List -> Array 변환하기
		List<String> str_list2 = new ArrayList<>();
		String[] str_arr2 = str_list2.toArray(new String[str_list2.size()]);
		
		// 3. int[] Array -> List<Integer> 변환하기
		/*
		 * List는 Integer를 가져야 하는데, int->Integer 자동형변환 안됨
		 * import java.util.*; 만 하면 Collections가 import 안된다.
		 * import java.util.stream.*;도 같이 해줘야 한다.
		 * */
		
		int []int_arr = {1,2,3,4};
//		List<Integer> int_list = new ArrayList<>(Arrays.asList(int_arr)); int, Integer 자동 형변환 안됨
		List<Integer> list1 = Arrays.stream(int_arr).boxed().collect(Collectors.toList());		
		
		// 4. 정수 Integer list -> 정수 int array 변환
		List<Integer> list11 = new ArrayList<>();
		int int_arr2[] = list11.stream().mapToInt(x->x).toArray();

		
		
	}
	public static void main(String[] args) throws IOException {
		solution();
	}
}

0개의 댓글