课后作业05

任务一:字串加密

1)程序设计思想:定义一个string类型来保存输入的字符串,再定义一个char类型数组来保存加密后的字符,通过(char)(charAt()+3)来对字符加密。

2)程序流程图:

 

 

3)源代码:

package lx2;
import java.util.Scanner;
public class Lx2 {
    static char[] s1;
    static String s;
    static int length;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("请输入内容");
       Scanner x = new Scanner(System.in);
       s = x.nextLine();
       length = s.length();
       s1 = new char[length];
       jiami(s);
       int i;
       for(i=0;i<length;i++)
       {
           System.out.print(s1[i]);
       }
    }
    public static void jiami(String q)
    {
        int i;
        for(i=0;i<length;i++)
        {
            if(s.charAt(i)>=88&&s.charAt(i)<=90)
            {
                s1[i]=(char)(s.charAt(i)-23);
            }
            else
            {
            s1[i] =(char)(s.charAt(i)+3);
            }
        }
    }
}

4)结果截图:

任务二:

动手动脑  String.Pool()

public class lX {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String s0="Hello";
        
        String s1="Hello";
        
        String s2="He"+"llo";
        
        System.out.println(s0==s1);//true
        
        System.out.println(s0==s2);//true
        
        System.out.println(new String("Hello")==new String("Hello"));//false
    
    }
    
}

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

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

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

任务三:String类的各种方法

1)length()方法

声明:   public int length()

例:String s;   int a;  a = s.length();   返回值为int型。

2)charAt()方法

声明:   public char charAt(int index)

java.lang.String.charAt() 方法返回指定索引处的char值。索引范围是从0到length() - 1。对于数组索引,序列的第一个char值是在索引为0,索引1,依此类推.

index -- 这是该指数的char值.

3)getChars()方法

声明:   public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)

java.lang.String.getChars() 方法从这个字符串中的字符复制到目标字符数组

要复制的第一个字符在索引srcBegin处,被复制的最后一个字符是在的索引srcEnd1即要复制的字符总数是srcEnd srcBegin处。

字符被复制到子数组的夏令时开始在指数dstBegin和结束于索引:dstbegin + (srcEnd-srcBegin) - 1

 4)replace()方法

声明:   public String replace(char oldChar, char newChar)

java.lang.String.replace(char oldChar, char newChar) 方法返回一个新的字符串替换此字符串中出现的所有oldChar与newChar.

5)toUpperCase()方法

例: String s = "v";   s.toUpperCase()就等于"V"

6)toLowerCase()方法

声明:  public String toLowerCase(Locale locale)

java.lang.String.toLowerCase(Locale locale) 方法将所有在此字符串中的字符小写的规则给定的Locale.

7)trim()方法

声明:    public String trim()

java.lang.String.trim() 方法返回一个字符串副本,并忽略(去除)开头和结尾的空白

8)toCharArray()方法

声明:   public char[] toCharArray()

java.lang.String.toCharArray() 方法把这个字符串转换成一个新的字符数组.

posted @ 2016-10-28 22:30  lzyz  阅读(59)  评论(0)    收藏  举报