课程作业三 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);
        }
    }
}

 

转载于:https://www.cnblogs.com/sisi-job/p/4907102.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值