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

 

posted @ 2016-10-28 22:25  陶雨洁  阅读(417)  评论(0编辑  收藏  举报