字符串-string
(1)string在Java中是一个引用类型,string变量可引用一个字符串对象
(2)
例1:
s0,s1,s2引用同一个对象
New创建的两个string是不同的对象只是内容相同。
例2:
s1,s2引用同一个字符串对象,
s1+=”b”;后s1是引用了新的对象,
s1是一个引用值(地址)不能与“ab”比较内容,即引用值不与内容匹配,
equals()方法可比较字符串内容。
(3)字符串比较
一:s1=”abcd”;s2=”abcd”;if(s1==s2)->此处比较的是s1,s2是否引用同一个对象(地址是否相同)。
二:比较字符串内容。 equals()。equalsIgnoreCase()。compareTo()字典法比较,返回值(0->相等,负数,正数)。regionMatches()比较字符串中某一部分是否相等
equals()方法:
(4):字符串查找。
查找某一字符或字串:
indexOf();
lastIndexOf();
查询是否以某字符串开始或结束:
start sWith();
endWith();
(5)常用字符串方法:
1. subString()提取字串;
例:
public class Stringx {
public static void main(String args[]) {
String s="I am a boy.";
String temp=s.substring(0,6);
System.out.println(temp);
}
}
2. concat()连接字串,或直接用“+”连接。
例:
public class Stringx {
public static void main(String args[]) {
String s="I am a";
String temp=" boy!";
System.out.println(s.concat(temp));
}
}
3. String.valueOf(),将其他类型转化为String类型。
例:
public class Stringx {
public static void main(String args[]) {
int a=12345;
String tem=String.valueOf(a);
System.out.println(tem);
}
}
4. Length();
例:
public class Stringx {
public static void main(String args[]) {
String tem="abcdefg";
System.out.println(tem.length());
}
}
5. charAt();
例:
public class Stringx {
public static void main(String args[]) {
String tem="abcdefg";
System.out.println(tem.charAt(3));
}
}
6. getChars();
例:
public class Stringx {
public static void main(String args[]) {
String tem="abcdefg";
char ch[]=new char[10];
tem.getChars(1,5,ch,0);
System.out.println(ch[4]);
}
}
7. replace();
例:replaceAll(String,String);
public class Stringx {
public static void main(String args[]) {
String tem="abcdefg";
tem=tem.replaceAll(tem, "aaaaa");
System.out.println(tem);
}
}
8. toUpperCase(),toLowerCase();
例:
public class Stringx {
public static void main(String args[]) {
String tem="abcdefg";
tem=tem.toUpperCase();
System.out.println(tem);
}
}
9. trim();
例:
public class Stringx {
public static void main(String args[]) {
String tem=" aBCdef g ";
tem=tem.trim();
System.out.println(tem);
}
}
10. toCharArray();
例:
public class Stringx {
public static void main(String args[]) {
String tem="abcdefg";
char ch[]=new char[10];
ch=tem.toCharArray();
for(int i=0;i<tem.length();i++)
System.out.print(ch[i]);
}
}
(6)StringBuffer类
String类型中s1=”abcd”,s1+=”ff”,s1前后引用两个不同的字符串对象,String对象创建后内容不可更改。
StringBuffer对象中可更高内容,长度自动改变
方法:
insert()
delete();
append();等
(7)StringBuilder类
(8)Character类
(9)StringTokenizer类
(10)String类实验:字串加密
设计思想:
设置加密/解密的key=x;
加密/解密:改变每一个字符原字符,前移(加),后移(减)key个单位。
程序流程图:
源代码:
import java.util.Scanner;
//字串加密
public class Mystic {
private String str;
public void setStr(String s) {
str=s;
}
public String getStr() {
return str;
}
public void jiami(String s) {
str=s;
for(int i=0;i<s.length();i++) {
str=str.replace(str.charAt(i),(char)(s.charAt(i)+4));
}
}
public void jiemi(String s) {
str=s;
for(int i=0;i<s.length();i++) {
str=str.replace(str.charAt(i),(char)(s.charAt(i)-4));
}
}
public static void main(String[] args) {
System.out.print("enter the string:");
Scanner scan=new Scanner(System.in);
String tem=scan.next();
Mystic mm=new Mystic();
System.out.println("choice:1->加密;2->解密。");
System.out.print("your choice:");
int ch=scan.nextInt();
if(ch==1) {
mm.jiami(tem);
System.out.println("加密后:"+mm.getStr());
}
else {
mm.jiemi(tem);
System.out.println("解密后:"+mm.getStr());
}
}
}
结果截图: