JAVA 문법

Saemi Min·2023년 4월 14일
0

배열

import java.util.Arrays;
  • 배열 선언
    int[] numbers={};

  • 배열 요소 생성
    numbers=new int[2];

  • => 한 줄로
    int[] numbers=new int[2];

  • 선언과 동시에 배열 초기화
    int[] arr={1, 2, 3};

  • 2차원 배열 선언
    int[][] arr = new int[4][3];
    int[][] arr1 = {{2, 5, 3}, {4, 4, 1}, {1, 7, 3}, {3, 4, 5}};

  • 값 추가
    numbers[0]=2;
    numbers[1]=3;

<주의> 정렬하기 위해서는 배열만 가능!, String에서는 안됨!! 그러니 String일 경우 char[]배열로 바꿔서 정렬하면 됨.

  • 정렬 (오름차순)
    Arrays.sort(numbers);

  • 정렬 (내림차순)
    Arrays.sort(numbers, Collections.reverseOrder())

  • 리스트의 길이
    numbers.length

  • 마지막 값 가져오기
    numbers[numbers.length-1]

  • 리스트 값 모두 가져와 출력하기
    Arrays.toString(numbers)

문자열

String answer="hello";

  • 문자열의 길이 가져오기
    answer.length()

  • 문자열의 한 문자 가져오기
    answer.charAt(i)
    만약, 문자가 숫자이며 이를 Integer.valueOf()로 바꾸면 유니코드 값으로 바뀜.!
    그래서 제대로 된 숫자로 바꾸기 위해서 아래의 자료형 변환 부분에서 찾아 봐라!! (문자-> 숫자)

  • 문자열에서 해당 범위에 있는 문자열 반환, to는 범위에 포함되지 않음.
    answer.substring(int from, int to)

  • 문자열의 내용이 같은지 확인하기 (true, false)
    answer.equals("ll")

  • 문자열을 문자 배열(char[])로 변환하여 반환
    answer.toCharArray()
    String[] answer={'h', 'e', 'l', 'l', 'o'};

  • 문자열 검색 (true, false)
    answer.contains("a");
    <주의> ()괄호 안에 'a'가 들어가면 안됨!!

  • 문자열 치환(Repalce)
    replace([기존문자],[바꿀문자])
    answer.replace("a", "");
    //이러면 a가 사라짐.

  • 문자열 치환(ReplaceAll)
    replaceAll([정규식],[바꿀문자])
    첫 번째 인자 값이 정규식으로 들어가기 때문에 특수 문자로 치환이 안된다.
    ex) 정규표현식 [aeiou] 의미 : a, e, i, o, u라는 값을 의미

  • 문자열을 대문자와 소문자로 변환
    <대문자 -> 소문자>
    .toLowerCase()
    <소문자 -> 대문자>
    .isUpperCase()

  • 문자가 대문자인지 소문자인지 구분
    대문자인지?
    Character.isUpperCase(my_string.charAt(i))
    소문자인지?
    Character.isLowerCase(my_string.charAt(i))

헷갈리는 부분

배열은 그냥 []으로 가져오면 되고, length을 쓰면 길이 가져와짐.
String 배열이든, interger 배열이든!

근데 그냥 문자열로 String이면 length()을 써야 하고, []을 쓰는 것이 아닌, charAt(i)으로 가져와야함.

자료형 변환

  • 문자를 숫자로 바꿈.(아스키 코드에 맞게)
    char c;
    int k=(int)c;

  • 숫자를 문자로 바꿈.(아스키 코드에 맞게)
    int k=48; / 97
    System.out.println((char)k);
    =>'0' / 'a'

  • int to char
    int k=8;
    char m= Character.forDigit(k , 10);
    m='8'

  • 숫자를 문자열로 바꿈
    int n=123
    String m=String.valueOf(n);
    String m1 = n+"";

  • 문자를 숫자로 바꿈
    char c = '1';
    int n = Character.getNumericValue(c);
    이 방식을 외우기 어려우면, 그리고 위 방법이 더 오래 걸림..
    my_string.charAt(i)-'0'

  • int to char(숫자를 문자로 바꿈)
    int value_int =1;
    char value_char2 = (char)(value_int +'0');
    => '1'

  • 문자열(String)을 문자의 배열(char[])로 바꿈
    String my_string;
    char[] ch = my_string.toCharArray();
    배열이 되면 ch[i]로 쓸 수 있음!
    문자열이라서 값을 charAt()로 가져와야 했던건데 이를 해결할 수 있음!!

  • 배열을 리스트로 바꿈.
    Arrays.asList() 메소드 사용
    ex)

        String[] arr = { "A", "B", "C" };
 
        // 배열 -> List로 변환
        List<String> list = Arrays.asList(arr);
 
  • ArrayList<Integer,>를 int[]으로 반환하고 싶을 때
    return answer.stream().mapToInt(x -> x).toArray();
    근데 이 방법은 비추.. 시간이 소요됨. 차라리 반환 값을 List<Integer.>으로 바꿔주는 게 훨씬 나음 (프로그래머스에서)

  • String 배열을 하나씩 잘라서 넣는것 얘는 String 형으로 할 수 있음.
    String[] answer = my_string.split("");
    비슷하게 String을 char 배열로 바꾸기 위해 toCharArray()로 할 수 있음(위에 작성된 것 참고)


특별한 함수

import java.util.*;

  • 최댓값을 찾기 위해서
    Math.max(a, b);

  • 값을 바꾸는 swap 함수를 쓰고 싶다면?
    Collections.swap(list, num1, num2);
    여기서 중요한 점은 list는 배열이 아닌 ArrayList를 사용해야 한다!!!!!!
    만약 그냥 String 배열을 ArrayList로 바꾸고 싶다면,
    List list = Arrays.asList(myString.split(""));
    으로 쓰면 됨.

  • A

profile
I believe in myself.

0개의 댓글