课程作业三 string,char操作

1.String.equal()源代码:

public boolean equals(Object anObject)
{
       //如果是同一个对象
        if (this == anObject)
        {
            return true;
        }
        //如果传递进来的参数是String类的实例
        if (anObject instanceof String)
        {
            String anotherString = (String)anObject;
            int n = count;//字符串长度
            if (n == anotherString.count) //如果长度相等就进行比较
            {
                char v1[] = value;//取每一个位置的字符
                char v2[] = anotherString.value;
                int i = offset;
                int j = anotherString.offset;
                while (n-- != 0) //对于每一位置逐一比较
                {
                    if (v1[i++] != v2[j++])
                        return false;
                }
                return true;
            }
        }
        return false;
}

2.String类型说明

(1)length():方法返回此字符串的长度。长度是等于Unicode代码单元中的字符串的数目

(2)charAt(): char charAt(int index) :取字符串中的某一个字符,其中的参数index指的是字符串中序数。字符串的序数从0开始到length()-1 。 
例如:

String s = new String("abcdefghijklmnopqrstuvwxyz"); 
         System.out.println("s.charAt(5): " + s.charAt(5) ); 

 

结果为: s.charAt(5): f 

(3)getChars():void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :该方法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为目标字符数组、dstBegin为目标字符数组的拷贝起始位置。 
例如:

char[] s1 = {'I',' ','l','o','v','e',' ','h','e','r','!'};//s1=I love her! 
        String s2 = new String("you!"); s2.getChars(0,3,s1,7); //s1=I love you! 
        System.out.println( s1 ); 

 

结果为:I love you! 

(4)replace():它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:
              String replace(char original,char replacement)
       例如:

String s="Hello".replace('l','w');

 

             第二种形式是用一个字符序列替换另一个字符序列,形式如下:
         String replace(CharSequence original,CharSequence replacement);

(5)toUpperCase():String toUpperCase() :将字符串转换成大写。

(6)toLowerCase():将字符串转换成小写。

(7)trim():去掉起始和结尾的空格

(8)toCharArray():将该String对象转换成char数组。

3.字串加密

设计思想:将用户输入的字符串转换成字符数组,分别加四,最后输出它们相加得到新的字符串。解密时同理。

流程图:

源程序代码:

import javax.swing.*;

public class Secret {
    public static void main(String[] args){
        String s=JOptionPane.showInputDialog("加密按1\n解密按2");//用户决定加密解密
        
        if(s.equals("1"))
        {
            String s1=JOptionPane.showInputDialog("请输入需要加密的密码");
            String s3="";
            char[] s2=s1.toCharArray();//转换为字符数组
            for(int i=0;i<s1.length();i++)
            {
                s2[i]=(char) (s2[i]+4);//依次加四
                if(s2[i]>'Z')//如果超过Z对应的数值则减去26
                {
                    s2[i]=(char) (s2[i]-26);
                }
                s3=s3+s2[i];//转换成字符串
            }
            JOptionPane.showMessageDialog(null,s3);
        }
        
        else if(s.equals("2"))
        {
            String s1=JOptionPane.showInputDialog("请输入需要解密的密码");
            String s3="";
            char[] s2=s1.toCharArray();//转换为字符数组
            for(int i=0;i<s1.length();i++)
            {
                s2[i]=(char) (s2[i]-4);//依次减四
                if(s2[i]<'A')//如果超过Z对应的数值则加上26
                {
                    s2[i]=(char) (s2[i]+26);
                }
                s3=s3+s2[i];//转换成字符串
            }
            JOptionPane.showMessageDialog(null, s3);
        }
    }
}

 

posted on 2015-10-24 16:32  火影不火  阅读(303)  评论(0编辑  收藏  举报