您的位置:首页 > 其它

String

2015-12-04 18:29 239 查看
package Four;

import java.util.Scanner;
public class Test {
public static void main(String[] args) {
testString();
}

//字符串对象一旦创建,内容就不能改变。
public static void testString() {

String s1 = "qiwei";	//java将字符串直接量看作String对象。
String s2 = new String("qiwei");
//Sting变量存储的是对String对象的引用。String对象存储的才是字符串的值。
String s3 = "qiwei";
System.out.println(s1 == s3);//false,s1和s3尽管内容相同,但是不同的字符串对象。

//true,String对象是不可变的,同时又会频繁使用,java虚拟机为了提高效率并节约内存,对具有相同字符序列的字符串直接量使用同一实例。
System.out.println(s1 == s2);

/*
* 字符串替换与分隔
*/
//将字符串中所有匹配的字符或子字符串替换成新的字符,然后返回新的字符串。
String s4 = s1.replace('i', 'h');
System.out.println(s4);
//将字符串中第一个匹配的子字符串替换成新的子字符串,
String s5 = s1.replaceFirst("i", "h");
System.out.println(s5);
//将字符串中所有匹配的子字符串替换成新的子字符串,
System.out.println(s1.replaceAll("qi", "ha"));

//返回一个字符串数组,其中包含被分隔符分隔的子字符串集。
//????????????????????数组的输出
String[] arrayStrings = s1.split("w");
for (String s : arrayStrings) {
System.out.print(s);
}

/*
* 依照模式匹配、替换和分隔
*
* 正则表达式是一个字符串,用于描述匹配一个字符串集的模式。	regular expression
* 可能通过指定某个模式来匹配、替换或分隔字符串。
*/

System.out.println(s1.equals("qiwei"));
System.out.println(s1.matches("qiwei"));
//描述的字符串模式是以qi开头后面紧跟任意0个或多个字符。
System.out.println(s1.matches("qi.*"));
//\\d表示单个数字位,\\d{d}表示三个数字位。
System.out.println("440-02-4534".matches("\\d{3}-\\d{2}-\\d{4}"));
//与正则表达式结合
String s = "a+b$#c".replaceAll("[$+#]", "hhhhhh");
System.out.println(s);
//正则表达式[.,:;?]每个字符都是分隔符
String[] tokens = "java,C?C#,C++".split("[.,:;?]");
for (String t : tokens) {
System.out.print(t);
}
System.out.println();

/*
* 字符串与数组的转换
*/
//字符串转换成数组
char[] chars = "qiwei".toCharArray();

//数组转换成字符串
//构造方法
String str = new String(new char[]{'q', 'i', 'w', 'e', 'i'});
System.out.println(str);
//valueOf(char[])
String str1 = String.valueOf(new char[]{'w', 'e', 'i'});
System.out.println(str1);

/*
* 将字符和数值转换成字符串
*/

//将字符串转换成Double.parseDouble(str3);
//将数字转换成字符串,重载 的静态valueOf方法
String s6 = String.valueOf(4.1);
System.out.println(s6);

//格式化字符串

String s9 = String.format("%7.2f%6d%-4s", 45.556, 14, "avb");
System.out.println(s9);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: