zoukankan      html  css  js  c++  java
  • 字符串动手动脑实践及凯撒密码

    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());   
            }
      }
    }

    验证截图:

  • 相关阅读:
    Sqlite EF6注册
    C# 等值锁定
    net 4.0+EF6+Sqlite 使用,安装,打包
    C#调用C++函数
    C# 调用.exe文件
    Java继承
    python多线程与threading模块
    Java对象构造
    python多线程与_thread模块
    Linux文件压缩与打包
  • 原文地址:https://www.cnblogs.com/lk0823/p/4909186.html
Copyright © 2011-2022 走看看