문제
입력
출력
예시
// 입력
3
good
time
big
// 출력
doog
emit
gib
코드
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 정수를 입력 받는다.
int num = input.nextInt();
// 정수의 숫자만큼 문자를 입력 받으므로 해당 정수 만큼의 String 배열을 생성한다.
String[] str= new String[num];
// 입력 받은 정수 만큼의 Scanner 입력창을 생성한다.
for (int i = 0; i < num; i++){
str[i] = input.next();
}
// 전달 받은 문자열 배열을 solution 함수에 정수와 함께 전달한다.
for (String x : solution(num, str)){
System.out.println(x);
}
}
public static ArrayList<String> solution (int num , String[] str) {
ArrayList<String> answer = new ArrayList<>();
for (String x : str) {
// StringBuilder라는 문자열을 다루는 또 다른 클래스가 있다. 여기에 문자를 전달한다.
// StringBuilder가 제공하는 reverse메서드를 사용하면 문자열을 뒤집을 수 있다.
// 아래 tmp변수의 타입이 String이기 때문에
// StringBuilder 사용 후 다시 toString으로 문자열로 바꾸어야 한다.
String tmp = new StringBuilder(x).reverse().toString();
//ArrayList에 요소를 추가할 때는 add를 사용한다.
answer.add(tmp);
}
return answer;
};
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
class Main {
public static ArrayList<String> solution(int num , String[] str) {
ArrayList<String> answer = new ArrayList<>();
for (String x : str) {
// 배열에 담긴 하나하나의 문자를 또 다시 글자 하나하나의 배열로 만든다.
char[] arr = x.toCharArray();
// 배열의 첫번째 인덱스와 마지막 인덱스를 각각 변수로 지정한다.
int lt = 0, rt = x.length()-1;
// 첫번째 인덱스는 하나씩 증가시키고, 마지막 인덱스는 하나씩 감소 시켜 계속해서 처음과 끝의
// 요소의 자리를 바꿀 것이다.
// 따라서 lt가 rt 보다 커지는 순간 더이상 바꿀 요소가 없는 것이므로 아래와 같은 조건을 걸어
// 반복 시킨다.
while (lt < rt) {
// 먼저 첫번째 인덱스 요소의 값을 복사해 두고 서로의 위치를 바꾼다.
// 자바는 값을 복사해서 대입하기 때문에 나중에 배열의 첫번째 요소를 바꿔도
// tmp의 값은 이전의 값 그대로 있다.
char tmp = arr[lt];
arr[lt] = arr[rt];
arr[rt] = tmp;
lt++;
rt--;
}
String tmp2 = String.valueOf(arr);
answer.add(tmp2);
}
return answer;
};
public static void main(String[] args) {
// 스캐너 객체를 생성한다.
Scanner input = new Scanner(System.in);
// 숫자를 입력 받는다.
int num = input.nextInt();
String[] str = new String[num];
for(int i = 0; i< num; i++){
str[i] = input.next();
}
for (String x : solution(num,str)){
System.out.println(x);
}
}
}
사용한 메서드
stringBuilder
public class sb {
public static void main(String[] args) throws IOException{
StringBuilder sb = new StringBuilder("aaa");
// 문자열 추가
System.out.println(sb.append("bbb")); // aaabbb
System.out.println(sb.append(4)); // aaabbb4
// 문자열 삽입
System.out.println(sb.insert(2, "ccc")); // aacccabbb4
// 문자열 치환, 문자열 교체
System.out.println(sb.replace(3, 6, "ye")); // aacyebbb4
// 인덱싱, 문자열 자르기
System.out.println(sb.substring(5)); // bbb4
System.out.println(sb.substring(3, 7)); // yebb
// 문자 삭제
System.out.println(sb.deleteCharAt(3)); // aacebbb4
// 문자열 삭제
System.out.println(sb.delete(3, sb.length())); // aac
// 문자열 변환
System.out.println(sb.toString()); // aac
// 문자열 뒤집기
System.out.println(sb.reverse()); // caa
// 문자 대체, 문자 교체, 문자 치환
sb.setCharAt(1, 'b');
System.out.println(sb); // cba
// 문자열 길이 조정
sb.setLength(2);
System.out.println(sb); // cb
}
}
String.valueOf()
char[] arr = {'a', 'b', 'c'};
String changeObjectToString = String.valueOf(arr);
System.out.println(changeObjectToString); // abc 출력
String[] arr2 = null;
String changeOjectToString2 = String.valueOf(arr2);
System.out.println(changeOjectToString2); // null 출력