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 ...
随机推荐
- 使用 Supervsior 守护进程
概述 一般来说,在终端开启的服务,如果退出终端的话,就会自动关闭服务.这个时候需要守护这个服务的进程. Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用在 UNIX-li ...
- ListView控件,表格模式下,如何调整行高
参考说明: https://www.codeproject.com/Articles/1401/Changing-Row-Height-in-an-owner-drawn-Control 如果所有项的 ...
- harbor设置开机自启
[root@bogon harbor]# vi /lib/systemd/system/harbor.service [Unit]Description=RedisAfter=network.targ ...
- hibernate 事务处理
Hibernate的事务处理:事务:* 事务就是逻辑上的一组操作,要么全都成功,要么全都失败!!! 事务特性:* 原子性:事务一组操作不可分割.* 一致性:事务的执行前后,数据完整性要保持一致.* 隔 ...
- 【VS开发】cmd dos 批处理重命名文件
原文地址:http://hi.baidu.com/benchoi/item/c1f531f5f1367b0b85d2785b 批处理实现文件批量重命名并自动加递增序列号 有时我们想把一些图片批量重命名 ...
- 深入理解java:2.3.5. 并发编程concurrent包 之容器BlockingQueue(阻塞队列)
1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列. 这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空. 当队列满时,存储元素的线程会等待队列 ...
- for循环实现九九乘法表
<!--for循环实现九九乘法表--> <table border="> <tbody> {% for x in range(1,10) %} <t ...
- redhat java配置
原来的java版本为1.4 whereis java后 将java原来的目录全部删除 拿来新的1.8的安装好的java包 vi /etc/profile插入 JAVA_HOME=/usr/local/ ...
- angular - ngFor, trackby
ngFor ngForOf指令通常使用缩写形式*ngFor为集合中的每个项呈现模板的结构指令.该指令放置在元素上,该元素将成为克隆模板的父级. <li *ngFor="let item ...
- etcd集群移除节点
查看当前集群信息 # etcdctl member list --write-out=table +------------------+---------+--------------------+ ...