자바에서 문자열 format
지금까지 그냥 출력문에 prinf를 사용해서 포맷을 이용했는데 문자열 변수에 하는 방법도 있다.
int cash = 400;
System.out.printf("%d원 입니다" cash);
String.format() 메소드를 이용한다
int num = 400;
String cash = String.format("%d원 입니다. num);
프로그래머스 서울에서 김서방 찾기
먼저 배열에 해당 값이 몇번째 인덱스 있나 알기위해 indexOf()를 사용했고, 문자열에 해당 인덱스 값을 넣어줘야해서 처음엔 어떻게 해야하지 했는데 찾아보니 위에 설명대로 String.format()을 사용하면 끝이다.
import java.util.*;
class Solution {
public String solution(String[] seoul) {
int idx =0;
List<String> list = new ArrayList<>(Arrays.asList(seoul));
idx = list.indexOf("Kim");
String answer = String.format("김서방은 %d에 있다", idx);
return answer;
}
}
다 풀고 다른 사람 풀이를 확인해보니 나는
List<String> list = new ArrayList<>(Arrays.asList(seoul));
idx = list.indexOf("Kim");
이렇게 두줄로 했는데 밑에 방법보니 처음 알았다. 지금까지 Arrays.asList()는 그냥 리스트 생성함과 동시에 값을 넣어주는 용도로만 알고 사용해왔는데 찾아보니
ArrayList로 배열을 쉽게 생성할 수 있지만 추가,변경,삭제를 못하는 읽기전용이고 정확히 말하면
AbstractList의 add, remove를 상속 받기 때문에 추가,삭제는 못하지만 set을 제공하기 때문에 불변이 아니고
기존 배열과 주소를 공유한다
Arrays.asList(seoul).indexOf("Kim");