TheSixthWeekJavaText

加密文档

实验要求编写一个算法加密一串英文字串。

设计思想:对于一个字符串,我们可以用String.charAt()方法依次取出其中的字符元素,组成一个字符数组。由于字符可以转化为short类型变量进行计算,所有将从字符串中取出的字符经过一个特定的运算后在转化为char类型,然后覆盖原来的字符变量。将字符数组中的每一个字符都经过相同的转化方式,然后用这个字符数组初始化一个字符串,输出这个字符串,便是加密后的字符串。当需要解密的时候,只需要取出去每个字符进行相反的运算就行了。

程序流程图:

 

程序源代码:

import javax.swing.JOptionPane;

public class A_classTest {

 

   public static void main(String[] args) {

      // TODO Auto-generated method stub

      String str = JOptionPane.showInputDialog(null);

     

      char arry[] = new char[str.length()];

      arry = str.toCharArray();

     

      for(int i = 0; i < str.length(); i++){

        short x = (short)arry[i];

        x += 20;

        if(x > 'z')

           x -= 26;

        arry[i] = (char)x;

      }

     

      String str1 = new String(arry);

     

JOptionPane.showMessageDialog(null, str1,"加密后为",JOptionPane.INFORMATION_MESSAGE);

   }

  

}


实验结果截图:


String.equals()方法的源代码:

 public boolean equals(Object anObject) { 

        //判断是否是和自己比较

        if (this == anObject) { 

            return true; 

        } 

        //判断传过来的anObject是否是String类型的实例

        if (anObject instanceof String) { 

            String anotherString = (String) anObject; 

            int n = value.length; 

            if (n == anotherString.value.length) { 

                char v1[] = value; 

                char v2[] = anotherString.value; 

                int i = 0; 

                //逐个字符进行比较

                while (n-- != 0) { 

                    if (v1[i] != v2[i]) 

                       return false; 

                    i++; 

                } 

                return true; 

            } 

        } 

        return false; 

    }

在判断两个字符串是否相等的时候,首先判断这两个字符创是否符合“==”的条件。然后判断两个字符串长度是否相等,长度不相等的字符串当然不会相等。然后逐个字符逐个字符比较两个字符串中是否有不相同的字符,只要有一个不相等的字符出现,结束比较,放回false。

String类中的一些方法的使用方法:

length():返回字符串的长度。调用时必须以String类的实例对象调用,例如str.length()。

charAt():去字符串中指定位置上的字符,括号中的参数范围是0到字符串长度减一。

getChars():将字符串中的部分字符存到一个字符数组中。该方法有4个参数,参数列表为int srcBegin,int srcEnd,char[] dst, int dstBegin, 参数列表表示取本字符串中位置下标为srcBegin开始到位置下标为srcEnd-1结束的所有字符,字符放在字符数组dst中位置下标为dstBegin开始的后续位置。

replace():字串替换,参数列表:charsequence target,charsequence replacement;

target表示本子符串中需要特换的子字符串,replacement表示代替的字符串。替换过程从本字符串的开始到末尾中所有符和条件的子字符串。

toUpperCase():将本字符串中的所有字符都转化为大写字符。

toLowerCase():将本字符串中的所有字符都转化为小写字符。

trim(): 去除本字符串头尾的空字符。

toCharArray():将本字符串转化为一个字符数组。

原文地址:https://www.cnblogs.com/maosonglin/p/6001212.html