728x90
코딩 문제 풀기
- C의 sprintf()와 비슷한 Java함수 String.format()
String String.format("%지정형식", 대입할 문자열);
참고: https://velog.io/@yu-jin-song/JAVA-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%98%95%EC%8B%9D-%EC%A7%80%EC%A0%95
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
String str = "StringFormatExample";
boolean bool = true;
int n = 1234;
LocalDateTime now = LocalDateTime.now();
String result = String.format("문자열 서식: %s, %S", str, str);
System.out.println(result);
result = String.format("boolean 서식 문자열: %B, %b", bool, bool);
System.out.println(result);
result = String.format("정수 서식: %d, %o, %x, %05d", n, n, n, n);
System.out.println(result); // %05d → 5자리수, 공백을 0으로 채움
result = String.format("부동 소수점 서식: %4$e, %3$f, %2$g, %1$a", 1234.01, 1234.02, 1234.03, 1234.04);
System.out.println(result); // %숫자$ 로 절대 인수 인덱스 지정
result = String.format("날짜/시간 서식: %tY년 %<tm월 %<td일 %<tH시 %<tM분 %<tS초", now);
System.out.println(result); // $< 로 상대 인덱스 지정하여 직전의 인수와 같은 인덱스를 이용
}
}
t, T: 날짜, 시간 서식 문자 앞에 지정
- 아규먼트 인덱스(argument index)
- 인수의 위치를 나타내는 10진수 정수
- 아라비아 숫자 + $
- < 플래그를 이용하면 이전 형식 지정자에 대한 인수 재사용 가능
[프로그래머스] 문제를 풀다가 2진수를 원하는 길이만큼의 문자열로 변환하기 좋은 함수에 대해 알게 되었다.
앞으로는 아래와 같이 코딩 문제를 풀 때 유지보수성 및 시간 복잡도도 주의깊게 살펴보려고 노력하고자 한다.
유지보수성을 위해 함수를 분리하는 연습 중!!
https://jinjinjincode.tistory.com/115
2주차 숙제
Set은 .get()으로 조회가 불가능했다
대신 Iterator를 사용하면 된다.
Iterator iter = stringSet.iterator(); // Iterator 사용. 순서대로 하나씩 가져옴
for(int i = 0; i < stringSet.size(); i++) {
System.out.println(i+1 + ". " + iter.next());
}
// for문 대신 while(stringSet.hasNext())을 사용할 수 있음
// .hasNext()로 다음으로 가져올 객체가 있는지 확인 -- true, false 리턴
숙제 제출:
package week02;
import java.util.*;
public class HW {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String data_st = sc.nextLine();
String sentence;
if(data_st.equals("List")){
ArrayList<String> stringList = new ArrayList<>();
while(true){
sentence = sc.nextLine();
if(sentence.equals("끝")) break;
else{
stringList.add(sentence);
}
}
System.out.println("[ List " + stringList.get(0) +" ]");
for(int i = 1; i < stringList.size(); i++){
System.out.println(i + ". " + stringList.get(i));
}
}
else if(data_st.equals("Set")){
String title = sc.nextLine();
Set<String> stringSet= new HashSet<>();
while(true){
sentence = sc.nextLine();
if(sentence.equals("끝")) break;
else{
stringSet.add(sentence);
}
}
System.out.println("[ Set " + title +" ]");
Iterator iter = stringSet.iterator(); // Iterator 사용
for(int i = 0; i < stringSet.size(); i++) {
System.out.println(i+1 + ". " + iter.next());
}
}
else{
Map<Integer, String> stringMap = new HashMap<>();
int key = 0;
while(true){
sentence = sc.nextLine();
if(sentence.equals("끝")) break;
else{
stringMap.put(key, sentence);
key++;
}
}
System.out.println("[ Map " + stringMap.get(0) +" ]");
for(int i = 1; i < stringMap.size(); i++){
System.out.println(i + ". " + stringMap.get(i));
}
}
}
}
'TIL' 카테고리의 다른 글
[231017] 정규표현식, 예외처리 구현, TIL 특강 (0) | 2023.10.17 |
---|---|
[231016] 추상클래스와 인터페이스, 다형성 구현 (0) | 2023.10.16 |
[231012] KPT 회고, 학습법 특강, next()와 nextLine() (0) | 2023.10.12 |
[231011] 비트 연산, Arrays 등 이용한 문제 풀기 (0) | 2023.10.11 |
[231010] 방명록 기능 검토, 문자열 내 문자 내림차순 정렬 (0) | 2023.10.10 |