第六讲 字符串
Posted 知止
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六讲 字符串相关的知识,希望对你有一定的参考价值。
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 ); } }
以上是关于第六讲 字符串的主要内容,如果未能解决你的问题,请参考以下文章