• 05字符串运用


    课后作业1:字串加密

    • 古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:

     

    请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。

    设计思想:

    输入字符串->将字符串转换为单个字符->每个字符加3->连接字符串->字符串加密输出

    程序流程图:

    源代码:

    //陶雨洁 2016/10/28 20153152

    package 字符运用;

    import javax.swing.*;

    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()将字符串对象转换为字符数组

  • 相关阅读:
    爱信诺面试总结
    项目进展日志6
    项目进展日志5
    项目进展日志4
    项目进展日志3
    项目进展日志2
    项目阶段总结
    项目进展日志
    事物的ACID特性
    5.27作业
  • 原文地址:https://www.cnblogs.com/Amyheartxy/p/6009616.html
Copyright © 2020-2023  润新知