注册这么久还什么都没发过,感觉自己稀碎,所以就发一下老师布置的题目和自己敲的答案叭。有不足之处还望各位大牛斧正。
题目:使用ASCII码完成,输入指定字母后得到该字母的后四位字母!如果超过字母表,重新轮回。
分析:其实这是一个很简单的题,核心就是对输入的字母先分析,后循环。下面我会提供两种方法解这道题。
第一种:在主方法内完成;
package homework;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("请输入26英文字母中任意一位:");
Scanner sc=new Scanner(System.in);
char x=sc.next().charAt(0);
if(('a'<=x&x<='z')|('A'<=x&x<='Z')){
System.out.println("该字母后四位是:");
for(int i=0;i<4;i++){
if(('a'<=x&x<='z')|('A'<=x&x<='Z')){
if(('a'<=x&x<='y')|('A'<=x&x<='Y')){
x=(char)(x+1);
System.out.print(x+"\t");
}
else{
x=(char)(x-25);
System.out.print(x+"\t");
}
}
}
}
else{
System.out.println("您的输入不合法!!!");
}
}
}
第二种是:
package homework;
import java.util.Scanner;
public class TurnIt {
public static void main(String[] args) {
System.out.println("请输入26英文字母中任意一位:");
Scanner sc=new Scanner(System.in);
String s=sc.next();
char x=s.charAt(0);
TurnIt t=new TurnIt();
char[] y=t.changeChar(x);
if(y!=null){
System.out.println("该字母后四位是:");
for(int i=0;i<4;i++){
System.out.print(y[i]+" ");
}
}
else{
System.out.println("您的输入不合法!!!");
}
}
public char[] changeChar(char x){
char[]y = new char[4];
if(('a'<=x&x<='z')|('A'<=x&x<='Z')){
for(int i=0;i<4;i++){
if(('a'<=x&x<='z')|('A'<=x&x<='Z')){
if(('a'<=x&x<='y')|('A'<=x&x<='Y')){
x=(char)(x+1);
y[i]=x;
}
else{
x=(char)(x-25);
y[i]=x;
}
}
}
return y;
}
return null;
}
}
当然,这些代码是有一定缺陷的,比如当我键盘输入kg,但char x;中x取的是k。也就是说它不会在这里报错。其实,如果想改进也很简单,就是通过String中length方法加上if方法判断它的输入位数,超过1位就报错。
但,做人要低调,要给新来的老师面子要给人留条路
运行图:
`