第一题

字符串加密问题

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的更多相关文章

  1. Java课堂作业详解

    今天的Java课堂留下了一个作业:使用Eclipse编写一个程序,使输入的两个数进行加和,并且输出他们的和.对于这个题目,我们首先可以把它分解成为三个不同的小步骤 第一步就是输入这两个数,因为我们无需 ...

  2. 第二周Java课堂作业

    演示一: public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size ...

  3. java课堂作业3 动手动脑

    第一题 测试一下代码查看输出结果 public class InitializeBlockDemo { /** * @param args */ public static void main(Str ...

  4. java课堂作业,求多参数的和

    设计思想 第一步:用户输入他想要计算的数字个数 第二步:声明字符串数组,保存用户的输入,同时每次输入后强制转换类型并求和 第三步:将声明的数组赋值给args 第四步:输出结果 程序流程图 程序源代码 ...

  5. java课堂作业--异常处理

    一. 运行结果: 二. 结果: ArrayIndexOutOfBoundsException/内层try-catch 发生ArithmeticException 三. 结果: ArrayIndexOu ...

  6. JAVA课堂作业(2019.10.14)

    一. (1)代码 package class20191014; import java.util.Scanner; public class ClassHomework { public static ...

  7. Java课堂作业01

    题目:编写一个程序,此程序从命令行接收多个数字,求和之后输出结果. 设计思想:用for循环将string型转换为int型,再用sum求和,使其一直相加,到达最大长度,sum即为所求sum. 程序流程图 ...

  8. Java课堂作业

  9. java课堂作业3 第一题 能查阅申请对象个数

    实验代码 public class Num { public static void main(String[] args) { // TODO Auto-generated method stub ...

随机推荐

  1. Prism学习--实现可插拔的模块

    首先,在使用Prism框架加载的程序集中分别添加一个类,并让这些类实现IModule接口.当Prism框架加载某个程序集后,将首先在程序集中搜索实现了该接口的类.之后将会调用该接口的Initializ ...

  2. loadrunner 场景设计-手工场景方案(Schedule)设计 Part 1

    参考:http://blog.sina.com.cn/s/articlelist_5314188213_1_1.html loadrunner 场景设计-手工场景方案(Schedule)设计 Part ...

  3. tmux 学习

    这几天学习了一下 tmux的使用 tmux 可以同时打开多个窗口 关于使用技巧 复制文章一下  哈哈 感谢网友 ================================华丽的分割线====== ...

  4. Libra的思考

    这几年关注了很多的新技术,近期让我觉得值得一讲的是blockchain,刚巧6.18号就发布了Libra 他是这么介绍自己的 libra https://developers.libra.org/bl ...

  5. 【Qt开发】 数字转QString格式化

    1 想要获得001 002 这样的数字 QString b=QString("%1").arg(i, 3, 10, QChar('0')); QStringList list;   ...

  6. Java 并发编程:volatile的使用及其原理(二)

    一.volatile的作用 在<Java并发编程:核心理论>一文中,我们已经提到过可见性.有序性及原子性问题,通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果 ...

  7. Python 类的私有属性与私有方法

    1.隐藏的使用场景 在Python类中,有些属性和方法只希望在对象的内部被使用,而不希望在外部被访问到, 2.定义方式, 在属性名或方法名前增加两个下划线,定义的就是私有属性或方法 #其实这仅仅这是一 ...

  8. memset函数及注意事项

    memset函数的原型为:void * memset(void *ptr,int value,size_t num);用于为地址ptr开始的num个字节赋值value. memset函数的头文件为:C ...

  9. C语言---程序的一般形式、数据类型、常量变量、运算符、表达式、格式化输入输出

    1. 程序的一般形式 (1)注释 ① 分类:单行注释( // ): 注释一行.多行注释( /**/ ): 在这个区间内,都属于多行注释,可以换行. ② 作用:提示代码的作用,提示思路   不写注释的后 ...

  10. python 类(2)

    """ """class BaseCat(object): """ 猫科基础类""&quo ...