language & Framework/Java
[자바] 완전 기초 - 쉼표로 이루어진 문자열 중 빈값 제거
moonster
2023. 4. 11. 21:58
반응형
요청사항
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, " 인경우에도 정상적으로 출력됨을 확인 했다.
사실 방법은 이외에도 많을 것이다. 창의적으로 고민해보면 도움이 되지 않을까!
반응형