반응형
요청사항
string list = "aaa, bbb, ccc";
string list = "aaa, bbb, ccc, ";
string list = "aaa, bbb,";
string list = "aaa, bbb";
이런식으로 쉼표가 제일 뒤에 찍힐 수도 아닐 수도 있는데,
쉼표 없는 제대로된 나열만 나오게 알고리즘을 만들자.
접근법은 일단 세개가 떠오른다.
하나는 split으로 쪼개고 배열의 가장 마지막칸( arr[arr.length - 1] 로 표현할 수 있다)이
trim() 후 공백이면 subString 하는 방법
두번째는 subString(list.lastIndexOf(","))
설명하자면 가장 마지막 쉼표 다음이 공백이면 그 앞까지만 subString 하는 방법
세번째는 split으로 배열로 쪼갠 뒤 배열의 마지막 index의 값이 trim() 후에도 빈칸값이 아니면 "," + arr[index] 를 더하는 방법이다.
가장 좋은 방법이라고 할 수는 없겠지만 계속 말로만 적는 것 같아서 세번쨰는 코드로 적어본다.
/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
String list = "aaa,";
String result = "";
if (list.indexOf(",") > 0){
String[] arr = list.split(",");
result = arr[0];
for (int i = 1 ; i < arr.length ; i++){
if(!"".equals(arr[i].trim())){
result += "," + arr[i];
}
}
} else { // list = "a"; ( 쉼표가 없는 경우)
result = list;
}
System.out.println(result);
}
}
여러 경우의 수로 다 해보진 않았지만... aaa, 에서 ,가 떨어져 나간 aaa가 출력된다!
list 가 "aaa,bbb, " 인경우에도 정상적으로 출력됨을 확인 했다.
사실 방법은 이외에도 많을 것이다. 창의적으로 고민해보면 도움이 되지 않을까!
반응형
'language & Framework > Java' 카테고리의 다른 글
[자바] 프로그래머스 - Lv.0 대소문자 바꿔서 출력하기, 코딩 기초 트레이닝 - 배열 만들기 5, 문자 개수 세기, 배열조각하기, 문자열 묶기, 전국 대회 선발 고사, 두 수의 합 (0) | 2023.04.25 |
---|---|
[자바] 프로그래머스 lv.1 빈병 콜라 문제, lv.1 달리기경주, lv.0 다수 (0) | 2023.04.20 |
[자바][프로그래머스] 2022 KAKAO TECH INTERNSHIP - 성격 유형 검사하기 (글쓴이가 푼 방법) (1) | 2023.04.16 |
[자바] 백준 20937번 / 백준 2579번 (0) | 2023.04.13 |