第四次动手动脑作业

1.

 

 

在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象。赋值

编译器在编译s2一句时,会去掉“+”号,直接把两个字串连接起来得一个字串(“Hello”)。这种优化工作由Java编译器自动完成。

当直接使用new关键字创建字符串对象时,虽然值一致(都是“Hello”),但仍然是两个独立的对象。

2.

 

 

给字串变量赋值意味着:两个变量(s1,s2)现在引用同一个字符串对象“a”!

String对象的内容是只读的,使用“+”修改s1变量的值,实际上是得到了一个新的字符串对象,其内容为“ab”,它与原先s1所引用的对象”a”无关,所以,s1==s2返回false;

代码中的“ab”字符串是一个常量,它所引用的字符串与s1所引用的“ab”对象无关。

String.equals()方法可以比较两个字符串的内容。

 

3.

总结:String.equals方法的实现代码

 

public boolean equals(Object anObject)

{       

              //如果是同一个象      

              if (this == anObject)      

             {           

                       return true;       

              }       

              //如果传递进来的参数是String类的实例      

              if (anObject instanceof String)      

             {           

                     String anotherString = (String)anObject;           

                     int n = count;//字符串长度           

                     if (n == anotherString.count) //如果长度相等就进行比较          

                     {               

                            char v1[] = value;//取每一个位置的字符               

                             char v2[] = anotherString.value;

 

4.

 

package demo;

import java.util.Scanner;

public class Mi { 

           public static void main(String[] args) {

                   // TODO 自动生成的方法存根

                   Scanner scan=new Scanner(System.in);

                   System.out.println("需要加密的电报是:");

                   String str;

                   str=scan.nextLine();//nextLine函数接受数据

                   int length;

                   length=str.length();

                   String str1=new String();

                    String str2=new String();

                    String str3=new String();

                    char chuan;

                    char qian,hou;

                    for(int i=0;i<length;i++)

                    {

                         str1=str.substring(i,i+1);

                         chuan=str1.charAt(0);

                         qian=(char)(chuan+3);

                         hou=(char)(chuan-3);

                         str2=qian+str2;

                         str3=hou+str3;

                    }

           System.out.println("加密后的电报为:"+str2);

          System.out.println("解密后的电报为:"+str3); 

                } 

}

 

 

 

 

 

posted @ 2015-10-24 22:45  ☀️你是我的小太阳吗  阅读(117)  评论(0编辑  收藏  举报