String의 아래 메서드를 활용해서 주석처럼 출력하는 코드를 완성 하시오.
단, indexOf()
, lastIndexOf()
,substring()
사용
class Homework {
public static void answer1(String str) {
/*
태산이
태산이 높다하되
태산이 높다하되 하늘
태산이 높다하되 하늘 아래
태산이 높다하되 하늘 아래 뫼이로다.
*/
int idx = str.lastIndexOf(" "); // 14
if(idx != -1) {
answer1(str.substring(0, idx)); // 태산이 높다하되 하늘 아래
}
System.out.println(str);
}
public static void answer2(String str) {
/*
뫼이로다.
아래 뫼이로다.
하늘 아래 뫼이로다.
높다하되 하늘 아래 뫼이로다.
태산이 높다하되 하늘 아래 뫼이로다.
*/
int idx = str.indexOf(" "); // 3
if(idx != -1) {
answer2(str.substring(idx + 1)); // 높다하되 하늘 아래 뫼이로다.
}
System.out.println(str);
}
public static void answer3(String str) {
/*
[태산이 높다하되 하늘 아래 뫼이로다.]
태산이
높다하되
하늘
아래
뫼이로다.
*/
int idx = str.indexOf(" "); // 4 / 4 / 2
if(idx != -1){
System.out.println(str.substring(0, idx)); // 태산이 / 높다하되 / 하늘
answer3(str.substring(idx + 1)); // 높다하되 하늘 아래 뫼이로다. / 하늘 아래 뫼이로다.
} else {
System.out.println(str);
}
}
public static void answer4(String str) {
/*
[태산이 높다하되 하늘 아래 뫼이로다.]
뫼이로다.
아래
하늘
높다하되
태산이
*/
int idx = str.lastIndexOf(" "); //태산이
if(idx != -1) {
System.out.println(str.substring(idx + 1));
answer4(str.substring(0, idx)); // 태산이 높다하되
} else {
System.out.println(str); // 태산이
}
}
public static void main(String[] args) {
String str = "태산이 높다하되 하늘 아래 뫼이로다.";
answer1(str);
System.out.println();
answer2(str);
System.out.println();
answer3(str);
System.out.println();
answer4(str);
}
}
/*
String의 아래 메서드를 활용해서 주석처럼 출력하는 코드를 완성 하시오.
단, indexOf, lastIndexOf,substring 사용
*/
class Homework {
public static void answer1(String str) {
/*
태산이
태산이 높다하되
태산이 높다하되 하늘
태산이 높다하되 하늘 아래
태산이 높다하되 하늘 아래 뫼이로다.
*/
boolean flag = true;
int idx = 0;
while(flag) {
idx = str.indexOf(" ", idx);
if(idx == -1) {
idx = str.length();
flag = false;
}
System.out.println(str.substring(0, idx));
idx++;
}
}
public static void answer2(String str) {
/*
뫼이로다.
아래 뫼이로다.
하늘 아래 뫼이로다.
높다하되 하늘 아래 뫼이로다.
태산이 높다하되 하늘 아래 뫼이로다.
*/
boolean flag = true;
int idx = str.length() - 1;
while(flag) {
idx = str.lastIndexOf(" ", idx);
if(idx == -1) {
idx = 0;
flag = false;
} else {
idx++;
}
System.out.println(str.substring(idx));
idx -= 2;
}
}
public static void answer3(String str) {
/*
[태산이 높다하되 하늘 아래 뫼이로다.]
태산이
높다하되
하늘
아래
뫼이로다.
*/
int start = 0;
int end = 0;
boolean flag = true;
while(flag) {
end = str.indexOf(" ", start); // end: 3
if(end == -1) {
flag = false;
end = str.length();
}
System.out.println(str.substring(start, end)); //0, 4
start = end + 1; // 5
}
}
public static void answer4(String str) {
/*
[태산이 높다하되 하늘 아래 뫼이로다.]
뫼이로다.
아래
하늘
높다하되
태산이
*/
int start = str.length();
int end = str.length();
boolean flag = true;
while(flag) {
start = str.lastIndexOf(" ", start - 1); // start: 14
if(start == -1) {
flag = false;
}
System.out.println(str.substring(start + 1, end)); // 15, 20
end = start;
start--;
}
}
public static void main(String[] args) {
String str = "태산이 높다하되 하늘 아래 뫼이로다.";
answer1(str);
System.out.println();
answer2(str);
System.out.println();
answer3(str);
System.out.println();
answer4(str);
}
}