문서 색인

1-1. 문제

input 문자열을 뒤집기

1-2. 코드

public class ReverseStr {
  public static void main(String[] args) {
    ReverseStr rs = new ReverseStr();
    System.out.println("## result="+rs.reverseStr("XYZabcdefg"));
  }
 
  public String reverseStr(String str){
    System.out.println("## input="+str);
    StringBuffer sb = new StringBuffer(str);
    return sb.reverse().toString();
  }
}

1-3. 결과

input=XYZabcdefg
result=gfedcbaZYX

 

2-1. 문제

input 문자열을 뒤집되 대소문자 구별 (소문자 -> 대문자 순으로 출력, 예: abCDef -> febaDC)

reverseStr 메소드는 String형 변수 str을 매개변수로 입력받습니다.
str에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 String을 리턴해주세요.
str는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
예를들어 str이 "Zbcdefg"면 "gfedcbZ"을 리턴하면 됩니다.

2-2. 코드

import java.util.Arrays;
 
public class ReverseStr {
  public static void main(String[] args) {
    ReverseStr rs = new ReverseStr();
    System.out.println("## result=" + rs.reverseStr("abCDef"));
  }
 
  public String reverseStr(String str) {
    System.out.println("## input=" + str);
 
    StringBuffer lowerBuffer = new StringBuffer();
    StringBuffer upperBuffer = new StringBuffer();
 
    for (int inx = 0; inx < str.length(); inx++) {
      char c = str.charAt(inx);
 
      if (Character.isLowerCase(c)) {
        lowerBuffer.append(c);
      } else {
        upperBuffer.append(c);
      }
    }
 
    char[] lowerArray = lowerBuffer.toString().toCharArray();
    char[] upperArray = upperBuffer.toString().toCharArray();
 
    Arrays.sort(lowerArray);
    lowerBuffer.setLength(0);
    lowerBuffer.append(new String(lowerArray));
 
    Arrays.sort(upperArray);
    upperBuffer.setLength(0);
    upperBuffer.append(new String(upperArray));
 
    lowerBuffer.reverse();
    upperBuffer.reverse();
 
    return lowerBuffer.toString() + upperBuffer.toString();
  }
}

2-3. 결과

## input=XYZabcdefg
## result=gfedcbaZYX