第十章字符串

 String类


 声明字符串
在Java语言中,字符串必须包含在一堆双引号("")之内。

例如:"23.23"、"ABCDE"、"你好"

可以通过以下语法格式莱声明字符串变量:

String str;

String:指定该变量为字符串类型。

str:任意有效的标识符,表示字符串变量的名称。

声明字符串变量s

创建字符串 


在Java语言中,将字符串作为对象来处理,因此可以像创建其他类对象一样来创建字符串对象。创建对象要使用类的构造方法。String类的常用构造方法如下:

1.String(char a[])

10.2连接字符串
10.2.1连接多个字符串
使用“+”运算符可实现连接多个字符串的功能。“+”运算符可以连接多个String对象并产生一个新的String对象。

判断字符串是否相等


对字符串对象进行比较不能简单地使用比较运算符“==”

代码:

String tom =new String("I am a student");
    String jerry = new String("I am a student");
    boolean b = (tom == jerry);
布尔类型变量b的值位false,因为字符串是对象,tom、jerry是引用
 

字母大小写转换

String 类的toLowerCase()方法可将字符串中的所有大写字母改写为小写字母,而toUpperCase()方法可将字符串中的所有小写字母改写为大写字母。

1.toLowerCase()方法

该方法将字符串中的所有大写字母转换为小写

字符串生成器

创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的String实例,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将极大地增加系统开销。而JDK新增了可变的字符序列StringBuilder类,大大提高了频繁增加字符串的效率。

1. append()方法 笑的常用方法如下。


该方法用于向字符串生成器中追加内容。通过该方法的多个重载形式,可实现接受任何类型的数据,如int、boolean、 char、String、double或者另一个字符串生成器等。语法如下:

append(content)

其中,content表示要追加到字符串生成器中的内容,可以是任何类型的数据或者其他对象。


2. insert(int offset,arg)方法


该方法用于向字符串生成器中的指定位置插入数据内容。通过该方法的不同重载形式,可实现向字符串生成器中插入int、float、char和boolean等基本数据类型的数据或其他对象。语法如下:

insert(int offset arg)


a、 offset:字符串生成器的位置。该参数必须大于等于0,且小于等于此序列的长度。

b、arg:将插入至字符串生成器的位置。该参数可以是任何数据类型的数据或其他对象。向字符串生成器中指定的位置添加字符,代码如下:

tringBuilder bf = new StringBuilder("hello"); //创建字符生成器
bf.insert(5, "world");
System.out,println(bf.toString()); //添加至字符生成器的位置及内容
                                  //此时输出信息为 helloworld

3. delete(int start,int end)方法


移除此序列的子字符串中的字符。该子字符串从指定的start处开始,一直到索引end-1处的字符。如果不存在这种字符,则一直到序列尾部。如果start等于end,则不发生任何更改。语法如下:  

delete(int start , int end)

a、 start:将要删除的字符串的起点位置。
b、 end:将要删除的字符串的终点位置。

删除指定位置的子字符串,代码如下: 

StringBuilder bf = new StringBuilder("StringBuilder");
bf.delete(5,10);
System.out.println(bf.toString());

10.1

package string;

public class Join {//创建类

	public static void main(String[] args) {//主方法
		// TODO Auto-generated method stub
		String s1=new String("春色绿千里");//声明字符串变量
		String s2=new String("马蹄香万家");//声明字符串变量
		String s=s1+"\n"+s2;//赋值
		System.out.println(s);
		
	}

}

 10.2

//包名
package string;
//创建类
public class Lick {
//主方法
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	//	声明变量int
		int booktime=4;
	//	声明变量float
		float practice=2.5f;
		System.out.println("我每天花费"+booktime+"小时看书;"+practice+"小时上机练习");
	}
	
	}


10.3

package string;

public class Text {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//获取字符串的长度
		String str=new String("helloworld");
		int length=str.length();
		System.out.println(length);
		
		//查找字符串里第一次出现该元素的位置indexOf
	int indexof=str.indexOf("l");
		System.out.println(indexof);
		
		//查找字符串里最后一次出现该元素的位置lastIndexOf	`
		int  lastIndexof=str.lastIndexOf("l");
		System.out.println(lastIndexof);

	//获取指定索引号的字符
	char charAt=str.charAt(3);
	System.out.println(charAt);
	}
}

 

10.4

package string;

public class Ref {

	public static void main(String[] args) {//主方法
		// TODO Auto-generated method stub
		String str="hello world";
		char mychar=str.charAt(6);//charAT方法
		System.out.println("字符串str中索引位置是6的字符为:"+mychar);//打印
}

}

 

10.5


public class Test2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//10.4字符串操作
		//获取字串
		String str=new String("helloworld");
	String substring1=str.substring(3);
	System.out.println(substring1);
	String substring2=str.substring(1,5);
	System.out.println(substring2);
}
}
	

 

10.6

	//去除空格S
	String st="   java  class   ";
	System.out.println(st+"长度为"+st.length());
	String s=st.trim();//Trinidad方法
	String s1=s.replace("  ", "");//去掉空格
	System.out.println(st+"长度为"+s.length());

 

10.7

public class NewStr{
		public static void main(String args[]) {	
String stri="address";//创建String类型的变量
	String replace=stri.replace("d", "D");//替换
	System.out.println(replace);//打印替换后的结果

 

 10.8

public class StartOrEnd{
		public static void main(String args[]) {	//主方法
	String num1="22045614";
	boolean b1=num1.startsWith("22");//用布尔类型判段
	System.out.println(b1);//打印
	
	//判断字符串结尾
	String num2="20045614";
	boolean b2=num2.startsWith("22");
	System.out.println(b2);//打印
	

10.9

//判断字符串是否相等
	String str1=new String("abc");
	String str2=new String("abc");
	boolean b=(str1==str2);
	System.out.println(b);
	boolean equals=str1.equals(str2);
	System.out.println(equals);
	String str3=new String("ABC");
	boolean equalsIgnoreCase=str1.equalsIgnoreCase(str3);
	System.out.println(equalsIgnoreCase);

 10,10

	//按照unicode的值去比较两个字符串的顺序
	//前和后作比较返回-1
	//后和前作比较返回1
	//相同值作比较返回0
	String st1="a";
	String st2="b";
	String st3="c";
	System.out.println(st1.compareTo(st2));
	System.out.println(st2.compareTo(st2));
	System.out.println(st2.compareTo(st1));
	

10.11

	//字符串中字母大小写转换
	String s2="Oh my God!";
	System.out.println(s2.toLowerCase());//转小写
	System.out.println(s2.toUpperCase());//转大写
	

 

10.12

	//字符串的分割
	String strin="192.168.0.1";
	String[]split1=strin.split("\\.");
	for(String temp :split1) {
		System.out.println(temp);
	}
	
	
	//第二种方法
	String[] split2=strin.split("\\.",2);
	for(String temp:split2) {
		System.out.println(temp);	
	}
	
	
	
	
	
	
	
	
	}
}

 

10.13


		//日期与时间格式化
		Date date=new Date();
		System.out.println(date);
		
		//日期格式化
		String year=String.format("%tY",date);
		String mouth=String.format("%tm",date);
		String day=String.format("%td",date);
		System.out.println(year+"年"+mouth+"月"+day+"日");
		
		//时间格式化
		String hour=String.format("%tH",date);
		String minute=String.format("%tM",date);
		String second=String.format("%tS",date);
		System.out.println(hour+"时"+minute+"分"+second+"秒");
		
		

 

10.14


		//常见的日期时间组合格式化
		String dateFormat=String.format("tF", date);
		String timeFormat=String.format("tT", date);
		System.out.println(dateFormat + " " + timeFormat);
			

 

 10.15

	
		//常见类型格式化
	String str=String.format("%d" ,400/2);
	String str2=String.format("%b" ,3>5);
	String str3=String.format("%x" ,200);
	System.out.println("400的一半是:"+str);
	System.out.println("3>5正确吗:"+str2);
	System.out.println("200的十六进制数是:"+str3);
		
	

10.16

package string;

public class Jodge {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
String regex="\\w+@\\w+(\\.\\w}2,3}}*\\.\\w{2,3	}";
String str1="aaa&";
String str2="aaaaa";
String str3="1111@111ffyu.dfg.com";
if(str1.matches(regex)) {
	System.out.println(str1+"是一个合法的·E-mail地址格式");}
if(str2.matches(regex)) {
	System.out.println(str2+"是一个合法的·E-mail地址格式");}
if(str3.matches(regex)) {
System.out.println(str3+"是一个合法的·E-mail地址格式");}

10.17

	
		//常见类型格式化
	String str=String.format("%d" ,400/2);
	String str2=String.format("%b" ,3>5);
	String str3=String.format("%x" ,200);
	System.out.println("400的一半是:"+str);
	System.out.println("3>5正确吗:"+str2);
	System.out.println("200的十六进制数是:"+str3);

 

10.18

package string;

public class Jerque {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		String str = "";
		long starTime = System.currentTimeMillis();
		for (int i = 0; i < 10000; i++) {
			str = str + i;
		}
		long endTime = System.currentTimeMillis();
		long time = endTime - starTime;
		System.out.println("String 消耗时间:" + time);
		StringBuilder builder = new StringBuilder("");
		starTime = System.currentTimeMillis();
		for (int j = 0; j < 10000; j++) {
			builder.append(j);
		}
		endTime = System.currentTimeMillis();
		time = endTime - starTime;
		System.out.println("StringBuilder 消耗时间:" + time);

	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值