首页 > 代码库 > 第六讲 字符串

第六讲 字符串

1、equals()

   equals是根类Obeject中的方法。源代码如下:

public boolean equals(Object obj) {
    return (this == obj);
}

可见默认的equals方法,直接调用==,比较对象地址。

   不同的子类,可以重写此方法,进行两个对象的equals的判断。

  String类源码中重写的equals方法如下,

public boolean equals(Object anObject) {
     2         if (this == anObject) {
     3             return true;
     4         }
     5         if (anObject instanceof String) {
     6             String anotherString = (String) anObject;
     7             int n = value.length;
     8             if (n == anotherString.value.length) {
     9                 char v1[] = value;
    10                 char v2[] = anotherString.value;
    11                 int i = 0;
    12                 while (n-- != 0) {
    13                     if (v1[i] != v2[i])
    14                             return false;
    15                     i++;
    16                 }
    17                 return true;
    18             }
    19         }
    20         return false;
    21     }

总结:

  (1)String类中的equals首先比较地址,如果是同一个对象的引用,可知对象相等,返回true。

  (2)若果不是同一个对象,equals方法挨个比较两个字符串对象内的字符,只有完全相等才返回true,否则返回false。

 

2、Length(a):获取字串长度,a为一个字符串


3、charAt():获取指定位置的字符

定义和用法

   charAt() 方法可返回指定位置的字符。

   请注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串。

stringObject.charAt(index)
index必需。表示字符串中某个位置的数字,即字符在字符串中的下标。

提示和注释

   注释:字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。


4、getChars(1,2,3,4):获取从指定位置起的子串复制到字符数组中(它有四个参数,在示例中有介绍)

     四个参数的含义:
         1.被拷贝字符在字串中的起始位置
         2.被拷贝的最后一个字符在字串中的下标再加1
         3.目标字符数组
         4.拷贝的字符放在字符数组中的起始下标将
5、replace():子串替换

             stringObject.replace(regexp/substr,replacement)

             参数

     regexp/substr:     必需。规定子字符串或要替换的模式的 RegExp 对象。

                               请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

      replacement          必需。一个字符串值。规定了替换文本或生成替换文本的函数。

 

      返回值

         一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

      说明

            字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些    子 串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。


6、toUpperCase()、 toLowerCase():大小写转换

            toUpperCase()将小写转化为大写字符串;

            toLowerCase()将大写转化为小写字符串。
7、trim():去除头尾空格:空格算字符

Trim删除的过程为从外到内,直到碰到一个非空白的字符为止,所以不管前后有多少个连续的空白字符都会被删除掉


8、toCharArray():将字符串对象转换为字符数组
      

返回值:

它返回一个新分配的字符数组,其长度是这样的字符串的长度,且其内容被初始化为包含由该字符串所表示的字符序列。

 

9.字串加密

package homework;
import javax.swing.JOptionPane;
public class mima {
    public static void main(String[] args){
        String str=JOptionPane.showInputDialog("输入密码明文");//输入明文
        String s="";
        for(int i=0;i<str.length();i++){
            if(str.charAt(i)>=97&&str.charAt(i)<=118)
                s=s+(char)(str.charAt(i)+3);//当字符在a~w时,直接后移,ASCII码加3
            else
                if(str.charAt(i)>=119&&str.charAt(i)<=122)
                    s=s+(char)(str.charAt(i)-23);//当字符为x~z时,返回到前面几个,ASCII码减23
                else
                    s=s+str.charAt(i);//其他字符不变
        }
        JOptionPane.showMessageDialog( null, s,
                 "密文",
                 JOptionPane.INFORMATION_MESSAGE );
    }
    
}

技术分享

技术分享

 

第六讲 字符串