比如:I like beijing.
思路:
第一步,字符串整体逆置,得到:.gnijieb ekil I
第二步,将字符串中每一个单词逆置,得到:beijing. like I
-
数组转为字符,直接输出Arrays.toString(ch)不能通过测试,必须再创建一个字符串,把ch传入。
-
因为Java没有适合的库函数的逆置,需要自己写出来。
-
字符串转换为字符数组 toCharArray()
import java.util.*;
public class Main {
public static void reverse(char[] ch, int start, int end){
//倒置字符串方法
while (start < end) {
char ret = ch[start];
ch[start] = ch[end];
ch[end] = ret;
start++;
end--;
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String s = in.nextLine();
char[] ch = s.toCharArray();
int len = ch.length;
//倒置整个字符串
reverse(ch, 0, len - 1);
//倒置每个单词
int i = 0;
while (i < len) {
int j = i;
while(j < len && ch[j] != ' '){
j++;
}
if (j < len) {
reverse(ch, i, j - 1);
i = j + 1;
} else {
//字符串最后一个单词,
reverse(ch, i , j - 1);
i = j;
}
}
String s2 = new String(ch);
System.out.println(s2);
}
}
}



京公网安备 11010502036488号