String局部翻转
整体思路:
判断当前当不是空格,判断遍历索引后面的是否为空格,如果后面的是空格则逆序输出,逆序输出时判断索引之前的是否为空格,如果为空格则停止输出,由于最后一个比较特殊没有后面的索引,因此首先判断特殊情况
import java.util.Arrays;
public class Demo_Rank{
public static void main(String[] args) {
method();
}
public static void method() {
String str = "abc god 中国 java";
//获取空格的ASCII码
int empty = ' ' - 0;
//将字符串转化为字符数组
char[] arr = str.toCharArray();
for (int i = 0; i < arr.length; i++) {
//用ASCII码判断是否为空格,空格直接输出
if (arr[i] == empty) {
System.out.print(arr[i]);
} else {
//由于数组最后一个元素放在一起讨论会发生索引越界,这种特殊元素单独拿出来
if (i == arr.length - 1) {
for (int j = i; j >= 0; j--) {
if (arr[j] != empty) {
System.out.print(arr[j]);
} else {
break;
}
}
} else {
//判断索引后后一个元素是否为空格,如果是空格则逆序输出
if (arr[i + 1] == empty) {
for (int j = i; j >= 0; j--) {
if (arr[j] != empty) {
System.out.print(arr[j]);
} else {
break;
}
}
}
}
}
}
}
}