java课堂作业4
第一题
字符串加密问题
1.程序设计思想
读入字符串,然后获取其长度,利用charAt()获取每个位置字符并且对字符加3实现加密处理,并存入新字符串中。如果遇到xyz则减26存入。
2.程序流程图

3.程序源代码
import java.util.Scanner; import java.util.Random;
public class StringJiami { public static void main(String[] args) {
// TODO Auto-generated method stub
Str s=new Str();
Scanner input=new Scanner(System.in);
System.out.print("1 字符串加密\n2 字符串解密\n请选择:"); int choose=input.nextInt();
if(choose==1)
{
String str;
System.out.print("请输入要加密的字符串:");
input.nextLine();
str=input.nextLine(); //输入字符串
s.setStr(str);
System.out.println("加密后为:"+s.jiami());
}
if(choose==2)
{
System.out.print("请输入要解密的字符串:");
input.nextLine();
String str=input.nextLine(); //输入字符串
s.setStr(str);
System.out.println("解密后为:"+s.jiemi());
} } }
class Str{
private String str;
public void setStr(String a){
this.str=a;
}
public String jiemi(){
int l=str.length(); //计算字符串长度
String newstr=""; //设置空字符串保存解密后内容
char c;
for(int i=0;i<l;i++){
c=str.charAt(i); //提起第i个字符
if((c>='a'&&c<='c')||(c>='A'&&c<='C'))
c=(char)(c+26); //解密处理
if(c==' ')
c=c;
else
c=(char)(c-3);
newstr+=c; }
return newstr; //返回解密后字符串
}
public String jiami(){
int l=str.length(); //计算字符串长度
String newstr=""; //设置空字符串保存解密后内容
char c;
for(int i=0;i<l;i++){
c=str.charAt(i); //提起第i个字符
if((c>='x'&&c<='z')||(c>='X'&&c<='Z'))
c=(char)(c-26); //解密处理
if(c==' ')
c=c;
else
c=(char)(c+3); newstr+=c;
}
return newstr; //返回解密后字符串
} }
4验证结果截图


第二题
总结String类的一些方法的使用说明
Equals的实现方法
String anotherString = (String)anObject;
字符串是一个引用数据类型,本身是String个对象,
在这里把传进来的anObject这个对象,赋给anotherString (需要类型转换)
他当然可以调用String类里的成员,你说的count、value、offset都是String的成搜索员
int n = count;//这个count是原始字符串的长度
if (n == anotherString.count) { //把字符串长度和要比较的字符串长度对比,长度都不同的话就不用比字符串内容了
char v1[] = value;//把原始字符串义字符形式存入数组
char v2[] = anotherString.value; //把要比较字符串义字符形式存入数组
int i = offset;//数组下标
int j = anotherString.offset; //????
while (n-- != 0) { //遍历数组,比较 数组元素是否相同
if (v1[i++] != v2[j++])
return false;//在遍历的过程中如果有不同的就返回false;
} //你如果用过equals这个方法应该知道它返回的是boolean值
return true;
}
}
return false;
}
(1)Length():是表示字符串长度的一个属性。可以用来统计字符串的长度也可以设置返回数组元素的个数。
(2)charAt():方法返回指定索引处的char值。索引范围是从0到length() - 1。对于数组索引,序列的第一个char值是在索引为0,索引1,依此类推.
(3)void getChars(int srcBegin, int srcEnd,char[] dst, int dstbegin):该方法将目标字符拷贝到字符串中其中,srcBegin为拷贝的起始位置,srcEnd为拷贝的结束位置,字符串数值dst为目标字符数组,dstBegin为目标字符数组的拷贝起始位置
(4)replace():String replace(char oldChar,char newChar);//将字符串中第一个oldChar替换为newChar;
(5)toUpperCase()将字符转换为大写
(6)toLowerCase()将字符转换为小写
(7)Trim()删除字符串开始和结束部分的空格,然后返回删除后的结果。不删除字符串中间的空格
(8)toCharArray()将String类型转化为字符数组型
java课堂作业4的更多相关文章
- Java课堂作业详解
今天的Java课堂留下了一个作业:使用Eclipse编写一个程序,使输入的两个数进行加和,并且输出他们的和.对于这个题目,我们首先可以把它分解成为三个不同的小步骤 第一步就是输入这两个数,因为我们无需 ...
- 第二周Java课堂作业
演示一: public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size ...
- java课堂作业3 动手动脑
第一题 测试一下代码查看输出结果 public class InitializeBlockDemo { /** * @param args */ public static void main(Str ...
- java课堂作业,求多参数的和
设计思想 第一步:用户输入他想要计算的数字个数 第二步:声明字符串数组,保存用户的输入,同时每次输入后强制转换类型并求和 第三步:将声明的数组赋值给args 第四步:输出结果 程序流程图 程序源代码 ...
- java课堂作业--异常处理
一. 运行结果: 二. 结果: ArrayIndexOutOfBoundsException/内层try-catch 发生ArithmeticException 三. 结果: ArrayIndexOu ...
- JAVA课堂作业(2019.10.14)
一. (1)代码 package class20191014; import java.util.Scanner; public class ClassHomework { public static ...
- Java课堂作业01
题目:编写一个程序,此程序从命令行接收多个数字,求和之后输出结果. 设计思想:用for循环将string型转换为int型,再用sum求和,使其一直相加,到达最大长度,sum即为所求sum. 程序流程图 ...
- Java课堂作业
- java课堂作业3 第一题 能查阅申请对象个数
实验代码 public class Num { public static void main(String[] args) { // TODO Auto-generated method stub ...
随机推荐
- Prism学习--实现可插拔的模块
首先,在使用Prism框架加载的程序集中分别添加一个类,并让这些类实现IModule接口.当Prism框架加载某个程序集后,将首先在程序集中搜索实现了该接口的类.之后将会调用该接口的Initializ ...
- loadrunner 场景设计-手工场景方案(Schedule)设计 Part 1
参考:http://blog.sina.com.cn/s/articlelist_5314188213_1_1.html loadrunner 场景设计-手工场景方案(Schedule)设计 Part ...
- tmux 学习
这几天学习了一下 tmux的使用 tmux 可以同时打开多个窗口 关于使用技巧 复制文章一下 哈哈 感谢网友 ================================华丽的分割线====== ...
- Libra的思考
这几年关注了很多的新技术,近期让我觉得值得一讲的是blockchain,刚巧6.18号就发布了Libra 他是这么介绍自己的 libra https://developers.libra.org/bl ...
- 【Qt开发】 数字转QString格式化
1 想要获得001 002 这样的数字 QString b=QString("%1").arg(i, 3, 10, QChar('0')); QStringList list; ...
- Java 并发编程:volatile的使用及其原理(二)
一.volatile的作用 在<Java并发编程:核心理论>一文中,我们已经提到过可见性.有序性及原子性问题,通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果 ...
- Python 类的私有属性与私有方法
1.隐藏的使用场景 在Python类中,有些属性和方法只希望在对象的内部被使用,而不希望在外部被访问到, 2.定义方式, 在属性名或方法名前增加两个下划线,定义的就是私有属性或方法 #其实这仅仅这是一 ...
- memset函数及注意事项
memset函数的原型为:void * memset(void *ptr,int value,size_t num);用于为地址ptr开始的num个字节赋值value. memset函数的头文件为:C ...
- C语言---程序的一般形式、数据类型、常量变量、运算符、表达式、格式化输入输出
1. 程序的一般形式 (1)注释 ① 分类:单行注释( // ): 注释一行.多行注释( /**/ ): 在这个区间内,都属于多行注释,可以换行. ② 作用:提示代码的作用,提示思路 不写注释的后 ...
- python 类(2)
""" """class BaseCat(object): """ 猫科基础类""&quo ...