课后做业1:字串加密java
请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。算法
设计思想:数组
输入字符串->将字符串转换为单个字符->每一个字符加3->链接字符串->字符串加密输出学习
程序流程图:加密
源代码:设计
//陶雨洁 2016/10/28 201531523d
package 字符运用;对象
import javax.swing.*;blog
import java.util.Scanner;内存
public class Stringyy {
public static void main( String args[] )
{
//转为可用字符串
System.out.println("输入加密的字母字符");
Scanner input=new Scanner(System.in);
String mm=input.nextLine();
int n=mm.length();
String str1=new String();
for(int i=0;i<n;i++)
{
char a=mm.charAt(i);//取出单个字符
a=(char)(a+3);//每一个字符对应加3获得对应的字符
str1=str1+a;//链接
}
System.out.println("加密后的为:"+str1);
}
}
结果截图:
课后做业2:动手动脑
请运行如下示例代码StringPool.java,查看其输出结果。如何解释这样的输出结果?从中你能总结出什么?
输出结果:
true ture false
思考:
Java将同一内容的字符串保存在同一个地址当中,字符==判断是判断地址和数据,因此s0==s1为true。而字符串+会自动链接,因此实际上s2就是String s2=”HELLO”;,s0==s2也为true。这些个都是使用的同一个内存空间,而一旦new就表明申请新的内存空间,结果就是不一样的内存位置固然判等是就会显示false。
为何会有上述的输出结果?从中你又能总结出什么?
输出结果:
True false false true
思考:
S1与s2引用同一个字符“a”,因为数据内容相同因此保存在同一个地址,s1==s2结果是true,String类型+=操做以后获得一个新的字符串对象,s1==s2为false。字符串常量地址和申请的字符串对象地址无关,因此s2==”ab”为false。
.equals()判断数据内容。
请查看String.equals()方法的实现代码,注意学习其实现方法。
实现代码说起String s1=newString(“hello”);与String s1=”hello”;的区别。咱们知道new了一个新的对象以后,即使String数据内容相同可是地址还是不一样的,而若是是String类型变量赋值,结果却不一样,一样数据内容的变量地址是相同的。
整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明
Length():S. Length()表明字符串S的长度
charAt():S.charAt(i)表明S字符串提出单个第i个字符
getChars():charArray = new char[ 5 ];//定义一个字符串数组
s1.getChars( 0, 5, charArray, 0 );//将字符串S1从下标为0开始到下标为5保存在charAt数组当中,且拷贝的字符放在charAt的起始下标为0.
for ( int i = 0; i < charArray.length;i++ )
output += charArray[ i ];//以字符数组的形式输出字符
replace():将原字符串中的某个字符替换为指定的字符,并获得一个新的字符串
toUpperCase()、toLowerCase():大小写转换,toLowerCase()用来将字符串中的全部大写字母改成小写字母,,方法toUpperCase()用来将字符串中的全部小写字母改成大写字母。返回值均为已经转换的字符。
trim():去除头尾空格,获得一个新的字符串。
toCharArray():将字符串对象转换为字符数组