字符串动手动脑实践及凯撒密码

1、运行以下代码:

 
public class StringEquals {

    
/**
     * @param args the command line arguments
     */
    
    public static void main(String[] args) {
        
        String s1=new String("Hello");
        
        String s2=new String("Hello");

        
        System.out.println(s1==s2);
        
        System.out.println(s1.equals(s2));

        
        String s3="Hello";
        
        String s4="Hello";

          
        System.out.println(s3==s4);
        
        System.out.println(s3.equals(s4));
        
    
    }


}

结果截图:

总结:    

     1、java中equals和==的区别 值类型是存储在内存中的堆栈(简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。
  2、==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
  3、equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。
  4、==比较的是2个对象的地址,而equals比较的是2个对象的内容,显然,当equals为true时,==不一定为true。

 

2、String类的Length()charAt()、 getChars()replace()、 toUpperCase()、 toLowerCase()trim()toCharArray()使用说明

 1.Length()

    计算字符串长度。

 2.charAt()

   获取指定位置的字符

 3.getChars()

 获取从指定位置起的子串复制到字符数组中,比如 s1.getChars( 0, 5, charArray, 0 );四个参数的含义:

     1)被拷贝字符在字串中的起始位置。

     2)被拷贝的最后一个字符在字串中的下标再加1

     3)目标字符数组。

     4)拷贝的字符放在字符数组中的起始下标。

 4.replace()

    子串替换,replaceoldstringnewstring);用新字符串代替旧字符串。

 5.toUpperCase()toLowerCase()

    大小写转换,比如str.toUpperCase();str中所有小写转换成大写。

 6.trim()

    去除头尾空格,比如str=” abc ”,str.trim();abc头尾的空格去掉。

 7.toCharArray()将字符串对象转换为字符数组,str.toCharArray();str转换成char数组。

3、凯撒密码

 

import java.io.*;  
import java.util.Scanner;   
public class KaiSa1{   
     public static void main(String[] args){   
         System.out.print("请输入密钥:");   
         Scanner s=new Scanner(System.in);   
         int a=s.nextInt();
         C(a);  
     }    
public static void C(int n){   
     try{      
        char b[];        
        BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));          
        System.out.println("请输入一段明文:");         
        String str2=br2.readLine();         
        b=str2.toCharArray();            
        System.out.println("密文为:");         
        int k=n;         
        for(int i=0;i<str2.length();i++)
        {
            char ch=(char)((b[i]-'a'+k)%26+'a');
            System.out.println(ch);
        }
            System.out.println("密匙K="+k);  
        }
        catch(IOException e){
            System.out.println(e.getMessage());   
        }
  }
}

 

验证截图:

 

posted @ 2015-10-25 18:10  mrferry  阅读(495)  评论(0编辑  收藏  举报