补充基本知识:
JAVA中String类提供了转大写的方法toUpperCase()和转小写的方法toLowerCase()
String a = "ABC";
system.out.println(a.toLowerCase());//abc
String b = "abc";
system.out.println(b.toUpperCase());//ABC
习题描述:
描述
对于一个长度为 n 字符串,我们需要对它做一些变形。
首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。
比如"Hello World"变形后就变成了"wORLD hELLO"。
代码:
package com.example.test;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
System.out.println("请输入您需要反转的字段");
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String st = scanner.nextLine();
int len = st.length();
System.out.println("长度为" + len);
String ll= tanstring(st, len);
System.out.println("得到转化后的值是"+ll);
}
}
private static String tanstring(String st, int se) {
String res = "";
String tempStr = "";
for (int i = 0; i < se; i++) {
char c = st.charAt(i);//i 为长度 st为输入内容 charAr 类似获取下标的内容
if (c >= 'a' && c <= 'z') {
tempStr += Character.toUpperCase(c); //java 方法体 大写转化为小写
} else if (c >= 'A' && c <= 'Z') {
tempStr += Character.toLowerCase(c); //java 方法体 小写转化为大写
}
//到此处 上面的方法完成大小写的切换 把每个单词独立出来进行 大小切换
//下面的方法是 顺序切换
//字符串拼接 每次循环结束之后 tempStr的值都是最后获取的 最后获取的值拼接在最前 就可以达到顺序的切换
else {
tempStr = c + tempStr;
//保存上一次循环的值
res = tempStr + res;
tempStr = "";
}
}
res = tempStr + res;
System.out.println("输出的数据是" + res);
return res;
}
}
运行结果则是
请输入您需要反转的字段
Hello Word Yan
长度为14
输出的数据是yAN wORD hELLO
下面提供一个debug的 图片更好的理解 字母的调换
