键盘录入一个字符串,将字符串中的大写改成小写,小写改成大写,数字改成*。例如heLLO123,输出后为HEllo***
import java.util.Scanner;
/**
*
* @author sunzc 转换字符串,大写变小写,小写变大写,数字不变,其他变为*
*/
public class Transfer {
public static void main(String[] args) {
// String str = "ABC123abcfadfjbJBHJHJDsa";
String str = "";
Scanner s = new Scanner(System.in);
System.out.println("请输入您想输入的字符串:");
str = s.next();
StringBuffer sb = new StringBuffer();
int i;
// char ch;
for (i = 0; i <= str.length() - 1; i++) {// 遍历字符串
char ch;
// 通过str.charAt(i)遍历出字符串中每个字符
if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z') {// 判断字符是否在a-z之间(小写)
ch = (char) (str.charAt(i) - 32); // 如果为小写则转换为相应大写,赋值给ch
} else if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {// 判断字符是否在A-Z之间(大写)
ch = (char) (str.charAt(i) + 32); // 如果为大写则转换为相应小写,赋值给ch
} else if (str.charAt(i) >= '0' && str.charAt(i) <= '9') {// 判断字符是否在0-9之间(数字)
ch = '*'; // 如果为数字,则转为*号
} else {
ch = str.charAt(i); // 将原字符赋值给ch
}
sb.append(ch); // 将字符追加到sb序列
}
String trStr = sb.toString(); // 将StringBuffer转换为String类型
System.out.println(sb.toString());
}
}
改的话你只有在后台改撒
toLowerCase();//转成小写
.toUpperCase();//转成大写
例:
String str = "aaaaaBBcccc";
String Upstr = str.toUpperCase();
String Lowstr = str.toLowerCase();
Upstr 的值是 "AAAAABBCCCC"
Lowstr 的值是 "aaaaabbcccc"
现在如果是纯字母大小写很好办,我现在不要求键盘录入了,要求给你一个字符串,"AAbb12345",要求输出aaBB*****
问题在于,这些数字怎么办,我头疼的问题在这
"AAbb12345",要求输出aaBB*****
这个没有什么特殊方式,String转成char【】,遍历里面每一个字符,判断再转化
你自己 去研究 方法很多 , 我给你其中一种
public static String exChange(String str){
String flag = "";
String regEx = "\d";
System.out.println(Pattern.compile(regEx).matcher("12www3").find());
for(int i=0;i<str.length();i++){
//数字转换 *
if (Pattern.compile(regEx).matcher(str.substring(i, i + 1)).find()) {
flag += "*";
}else if(str.substring(i, i+1).equals(str.substring(i, i+1).toLowerCase())){
flag += str.substring(i, i+1).toUpperCase();// 小写转换 大写
} else if (str.substring(i, i + 1).equals(str.substring(i, i + 1).toUpperCase())) {
flag += str.substring(i, i + 1).toLowerCase();// 大写转换 小写
}
}
return flag;
}
import java.util.Scanner;
public class hello {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = scan.next();
str=str.replaceAll("[0-9]","*");
char[] ch=str.toCharArray();
for(int i=0;i if((int)ch[i]>=65&&(int)ch[i]<=90){
ch[i]+=32;
}else if((int)ch[i]>=91&&(int)ch[i]<=122){
ch[i]-=32;
}else{
ch[i]+=0;
}
}
str=new String(ch);
System.out.println("您输入的字符串是:" + str);
}
}
新手学习,一个笨方法,不知道是不是这样。
public static void main(String[] args) {
String st = new String();
String b,c;
c="";
Scanner sc= new Scanner(System.in);
System.out.println("请输入一个字符串");
st=sc.next();
if(!st.isEmpty()){
for(int i=0;i<st.length();i++){
Character cha = st.charAt(i);
if(Character.isUpperCase(cha)){
b=Character.toString(Character.toLowerCase(cha)) ;
}
else if(Character.isDigit(cha)){
b="*";
}else{
b=Character.toString(Character.toUpperCase(cha));
}
c=c+b;
}
System.out.println(c);
}