问题1:
解决:
程序设计思想:
首先先输入字符串,选择想要解密还是加密,并按照相应的选择进行处理,如果选择想要加密字符串,则现将字符串转换为字符数组,用for循环将每一个字符相应加密改变,判断是否为特殊字符,如果是,则减26,不是继续进行,然后加3,然后再重新赋值给该字符,循环输出,解密处理同上,不过改为加26,减3即可。
程序流程图:
程序源代码:
package demo;
import java.util.Scanner;
public class Romman {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner input=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str=input.next();
System.out.println("请输入想要1.加密字符串还是2.解密字符串:(输入数字)"); //选择
int number=input.nextInt();
char []array=str.toCharArray(); //将字符串转换为字符数组
if(number==1)
{
System.out.println("字符串转换为:");
for(int i=0;i<array.length;i++)
{ //加密字符串
if((array[i]>90&&array[i]<97)||array[i]>122)
{
array[i]=(char)(array[i]-26); //判断是否为特殊字符
}
array[i]=(char) (array[i]+3);
System.out.print(array[i]);
}
}
else
{
System.out.println("字符串转换为:");
for(int i=0;i<array.length;i++)
{ //解密字符串
if((array[i]>64&&array[i]<68)||(array[i]>96&&(array[i]<100)))
{
array[i]=(char)(array[i]+26); //判断是否为A,B,C或者a,b,c
}
array[i]=(char) (array[i]-3);
System.out.print(array[i]);
}
}
}
}
验证结果截图:
问题2:
解决:
验证结果截图:
原因:
问题3:
解决:
问题4:
解决:
源代码如下:
问题5与解决:
String类的方法可以连续调用:
String str="abc";
String result=str.trim().toUpperCase().concat("defg");
请阅读JDK中String类上述方法的源码,模仿其编程方式,编写一个MyCounter类,它的方法也支持上述的“级联”调用特性
Class MyCounter{
MyCounter counter1=new MyCounter(1);
MyCounter counter2=counter1.increase(100).decrease(2).increase(3);
问题6:String各个方法使用说明与阅读笔记
Length()方法是用来获取字符串长度的,它会返回字符串的长度,可以赋给其他变量
例如:
String hello=”hello”;
Int length=hello.length();
charAt()是返回指定索引处字符。
例如:
String str=”abc”;
char d=s.charAt(1);
getChars()是一个函数输入,使用的时候无需格式说明,可直接调,调用格式为z=getChar();,这条语句表示等待用户从键盘输入一个字符,并赋给变量.
replace()是用一个新字符串去替换字符串中指定的所有字符。
例如:
String str1=”I love java”;
char oldchar=’a’;
char newchar=’b’;
String str2=str1.replace(oldchar,newchar);
用newchar替换str1中所有的oldchar
toUpperCase()返回指定字符的大写格式
toLowerCase()返回指定字符的小写格式
trim()去除头尾空格,通过String类的trim()方法,可以通过去掉字符串的首尾空格得到一个新的字符串
toCharArray()是将字符串对象转换为字符数组