第十章总结

一.String类
 1.声明字符串

字符串可以通过以下语法格式来声明:

String str;

String为指定该变量为字符串类型,str为该字符串变量的名称

2.创建字符串

 String类的常用构造方法如下:

String(char a[])

该方法用一个字符数组a创建String对象,代码如下:

char a[] = {'g','o','o','d'};

String s =new String(a);

该代码等价于:String s = new String("good");

String(char a[], int offset, int length)

 该方法提取字符串数组a中的一部分创建一个字符串对象。参数offset表示开始截取字符串的位置,length表示表示截取字符串的长度。代码如下:

char c[] = {'s','t','u','d','e','n','t'};

String s = new String(a,2,4);

该代码等价于:String s = new String("uden")

package a;
 
public class Test1 {
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //字符串变量的申明
  String s;
  //字符串变量初始化
  // s = ("你好");
  s = new String("你好");
  System.out.println(s);
  //字符串变量初始化 传入字符类型数组
  char[] ch = {'g','o','o','d'};
  String st = new String(ch);
  System.out.println(st);
 }
 
}

 

 

 二.连接字符串 

1.字符串相连接

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

1.先连接一副对联的上,下联,再分行输出在控制台上:

package package1;
public class Join {       //创建类
 
 public static void main(String[] args) {//主方法
  String s1 = new String("春色绿千里");//声明String对象s1
  String s2 = new String("马蹄香万家");//声明String对象s2
  String s = s1 + "\n" + s2;   //将对象s1、"\n"和对象链接并将结果赋值给s
  System.out.println(s);    //将s输出
 
 }
 
}

 

2.字符串与其他类型相连接 

字符串也可同其他基本数据类型相连接。如果将字符串同其他数据类型数据进行连接,会将其他数据类型的数据直接转换成字符串。

 

2.统计每天的阅读和上机时间:

package package1;
 
public class Link {
 public static void main(String[] args) {
  int booktime = 4;
  float practice = 2.5f;
  System.out.println("我每天花费"+booktime+"小时看书;"+practice+"小时上机练习");
 
 }
 
} 

 

 

 三.获取字符串信息

 1.获取字符串长度

使用String类的length()方法可获取声明的字符串对象的长度。语法如下:

str.length();

2.字符串查找

indexOf(String s)

该方法用于返回参数字符串s在指定字符串中首次出现的索引位置。当调用 String 类的 indexOf()方法时,会从当前字符串的开始位置搜索 s 的位置。如果没有检索到字符串 s,该方法的返回值是-1语法如下:

str.indexOf(substr)

lastIndexOf(String str)
该方法用于返回指定字符串最后一次出现的索引位置。当调用 String 类的 lastIndexOf()方法时,会从当前字符串的开始位置检索参数字符串 str,并将最后一次出现 str 的索引位置返回。如果没有检索到字符串 str,该方法返回-1。语法如下:

str.lastlndexOf(substr)

‘3.用两种方式判断字符串的长度:

 

 

3.获取指定索引位置的字符

使用 charAt0方法可将指定索引处的字符返回。语法如下:

str.charAt(int index)

 
public class Ref {
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String str ="hellowworld";//定义字符串为str
  char mychar=str.charAt(6);//将字符串中索引位置为6的字符返回
  System.out.println("字符串str中索引位置是6的字符为:"+mychar);//输出信息
 }
 
}

 

 

4.查看指定索引位置上的字符:

package a;
 
public class Text {      //创建类
 
	public static void main(String[] args) {          //主方法
		// TODO Auto-generated method stub
		String str ="We are students";               //定义字符串在str
		int size = str.lastIndexOf("");              //定义字符串在str中的索引位置赋值给变量size
		System.out.println("空字符串在字符串str中的索引位置是:"+size);  //将变量size输出
		System.out.println("字符串str的长度是:"+str.length());        //将字符串str的长度输出
	}
 
}

  


四.字符串操作 

通过String类的substring()方法可对字符串进行截取。substring0方法被两种不同的重载形式,来满足不同的需要。这些形式的共同点就是都利用字符串的下标进行截取,且应明确字符串下标是从0开始的。

substring(int beginIndex)

该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串。语法如下:

str.substring(int beginindex)

substring(int beginlndex, int endindex)

该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串。语法如下:

substring(int beginlndex, int endindex)

5.《将进酒》的作者是哪位诗人? 

 
public class Subs {
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String str ="《将进酒》:李白(唐)";
  String substr=str.substring(6,8);//对字符串进行截取
  System.out.println("《将进酒》的作者是:"+substr);//输出截取后的字符串 
 
}

 

 

2.去除空格

trim()方法返回字符串的副本,忽略前导空格和尾部空格。语法如下:

str.trim()

6.去掉字符串首、尾的空格:

 

 
public class Blak {             //创建类
 
	public static void main(String[] args) {          //主方法
		// TODO Auto-generated method stub
			String str ="  Java    class    ";        //定义字符串str
			System.out.println("字符串原来的长度:"+str.length());      //将str原来的长度输出
			//将str去掉前导和尾部的空格后的长度输出
			System.out.println("去掉空格后的长度:"+str.trim().length());
	}
 
}

 

 

3.字符串替换

replace()方法可实现将指定的字符或字符串替换成新的字符或字符串。

语法如下:str.replace(CharSequence target, CharSequence replacement)

 

target:要替换的字符或字符串

replacement:用于替换原来字符串的内容

replace()方法返回的结果是一个新的字符串,如果字符或字符串oldChar没有出现在该对象表达式中的字符串序列中,则将原字符串返回。

 例题

 
public class NewStr {
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String str = "address";
  String newstr =str.replace("a","A");//把a替换
  System.out.println(newstr);//输出
  
  
  
  
 }
 
 
}

判断字符串的开始与结尾
stsrtsWith()方法与endsWith()方法分别于判断是否以指定的内容开始或结束。这两个方法的返回值都为boolean类型。

1.stsrtsWith()方法

该方法用于判断当前字符串对象的前缀是否为参数指定的字符串

语法:str.stsrtsWith(String prefix)    //prefix是指作为后缀的字符串

 2.endsWith()方法

该方法用于判断当前字符串是否为以给定的子字符串结束

语法:str.endWith(String suffix)     //suffix是指作为后缀的字符串
 

 例题

 
public class StartOrEnd {        //创建类
 
 public static void main(String[] args) {    //主方法
  // TODO Auto-generated method stub
  String num1="22045612";            //定义字符串num1
  boolean b = num1.startsWith("22"); //判断真假
  System.out.println("字符串num1是以22开始的吗?"+b);
  String num2="21304578";        //定义字符串num2
  boolean b2 = num2.endsWith("78");     //判断
  System.out.println("字符串num2是以78结尾的吗"+b2);       //输出信息
  
  
  
 }
 
}

 

10.4.5判断字符串是否相等

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

代码:1:String tom =new String("I am a student");
           2:String jerry = new String("I am a student");
           3:boolean b = (tom == jerry);

布尔类型变量b的值位false,因为字符串是对象,tom、jerry是引用,如下图:

1.equals()方法

如果两个两个字符串具有相同的字符和长度,则使用equals()方法进行比较时,返回true。否则,返回false。

语法:str.equals(String otherstr)    //其中str、otherstr是要比较的两个字符串对象

2.equalslgnoreCase()方法

 使用equals()方法对字符串进行比较时是区分大小写的,而使用equalslgnoreCase()方法是在忽略了大小写的情况下比较两个字符串是否相等,返回结果仍为boolean类型

语法如下:equalslgnoreCase(String otherstr)      //其中str、otherstr是要比较的两个字符串对象

 例题

 
public class Opinion {             //创建类
 
 public static void main(String[] args) {      //主方法
  // TODO Auto-generated method stub         
  String s1 =new  String("abc");              //创建字符串对象s1
  String s2 =new  String("ABC");                //创建字符串对象s2
  boolean b =s1.equals(s2);                    //使用equals()方法比较s1与s2
  boolean b2 =s1.equalsIgnoreCase(s2);          //使用equalsIgnoreCase()方法比较s1与s2
  System.out.println(s1+"equals"+s2+":"+b);       //输出信息
  System.out.println(s1+"equals"+s2+":"+b2);
 
 }
 
}

 10.4.6按字典顺序比较两个字符串
 compareToO方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将String对象表示的字符序列与参数字符串所表示的字符序列进行比较。

如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为0。

语法如下:str.compareTo(String otherstr)     //str、otherstr是要比较的两个字符串对象

 注意:compareTo()方法只有在equals(Object)方法返回true时才返回0

例题

 
public class Wordbook {               //创建类
 
	public static void main(String[] args) {           //主方法
		// TODO Auto-generated method stub
		String str = new String ("b");              //用于比较的3个字符串
		String str2 = new String ("a");
		String str3 = new String ("c");
		System.out.println(str+"compareTo"+str2+":"+str.compareTo(str2));    //将str与str2比较的结果输出
		System.out.println(str+"compareTo"+str3+":"+str.compareTo(str3));   //将str与str3比较的结果输出
	}
 
}

4.7字母大小写转换 

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

1.toLowerCase()方法

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

语法:str.toLowerCase()       //str是要进行转换的字符串

2. toUpperCase()方法

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

语法:str.toUpperCase()       //str是要进行转换的字符串

​  
public class UpAndLower {
 
 public static void main(String[] args) {
  // TODO Auto-generated method stubString stri = "Oh My God!";
   String lower = stri.toLowerCase();         //toLowerCase()将原字符串中的每个大写字母转化为小写,字符串长度不变
   System.out.println(lower);
   String upper = stri.toUpperCase();       //toUpperCase()将原字符串中的每个小写字母转化为大写,字符串长度不变
   System.out.println(upper);
    }
}
​

 

10.4.8字符串分割
1.split(String sign)

该方法可根据给定的分割符对字符串进行拆分

语法:str.split(String sign)   //sign为分割字符串的分割符,也可以使用正则表达式

2.split(String sign,int limit)

该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数

语法:str.split(String sign,int limit)

sign:分割字符串的分割符,也可以使用正则表达式

limit:限制的分割次数

例题

//10.4.8字符串的分割
		String strin="192.168.0.1";
		String[] split =strin.split("\\.");//转义,分割为4个部分
		for(String temp: split) {
			System.out.println(temp);	
			
		}
		String[] split2 =strin.split("\\.",2);//数字代表分为两部分,第一个点前面分为一部分
		for(String temp: split2) {
			System.out.println(temp);	

10.5格式化字符串
String 类的静态format()方法用于创建格式化的字符串。format()方法有两种重载形式。

1.format(String format,Object...args)

该方法使用指定的格式字符和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境。

语法:str.format(String format,Object...args)

format:格式化字符串

args:格式化字符串中由格式说明字符引用的参数

2.format(Local I,String format,Object...args)

该方法使用指定的语言环境、格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用其指定语言环境。

语法:str.format(Local I,String format,Object...args)

I:格式化过程中要应用的语言环境。

format:格式字符串

args:格式字符串中由格式说明符引用的参数。可以为0

10.5.1日期和时间字符串格式化
1.日期格式化

例子
Date data = new Date();      //创建Date对象date
String s = String.formate("%te",date);      //通过format()方法对date进行格式化

常用的日期格式化转换符如下表:

例题

 

 
package a;
import java.util.Date;      //导入java.util.Date类
public class Eval1 {          //新建类
 
	public static void main(String[] args) {          //主方法
		// TODO Auto-generated method stub
		Date date = new Date();                //创建Date对象date
		String year = String.format("%tY",date);          //将date进行格式化
		String month = String.format("%tB",date);
		String day = String.format("%td",date);
		System.out.println("今年是:"+year+"年");        //输出信息
		System.out.println("现在是"+month);
		System.out.println("今天是:"+day+"号");
	}
 
}

2.时间格式化 

格式化时间的转换符如下表:

例题

package a;
import java.util.Date;         //导入java.util.Date类
public class GetDate {            //新建类
 
	public static void main(String[] args) {     //主方法
		// TODO Auto-generated method stub
		Date date = new Date();                //创建Date对象date
		String hour = String.format("%tH",date);          //将date进行格式化
		String minute = String.format("%tM",date);
		String second = String.format("%tS",date);
		System.out.println("现在是:"+hour+"时"+minute+"分"+second+"秒");    //输出的信息    
	}
 
}

  

3.格式化常见的日期时间组合

格式化日期与时间组合的转换符定义了各种日期时间组合的格式,其中最常见的如下表:

例题

package a;
import java.util.Date;         //导入java.util.Date类
public class DateAndTime {      //创建类
 
	public static void main(String[] args) {       //主方法
		// TODO Auto-generated method stub
		Date date = new Date();                //创建Date对象date
		String time = String.format("%tc",date);          //将date进行格式化
		String form = String.format("%tF",date);
		System.out.println("全部的时间信息是:"+time);    //将格式化后的日期时间输出
		System.out.println("年-月-日格式:"+form); 
	}
 
}

 

 10.5.2常规类型格式化

常规类型格式化可应用于任何参数类型,如下表:

例题

package a;
 
public class General {            //新建类
 
	public static void main(String[] args) {        //主方法
		// TODO Auto-generated method stub
		String str = String.format("%d",400/2);          //将结果以十进制格式显示
		String str2 = String.format("%b",3>5);           //将结果以boolean型显示
		String str3 = String.format("%x",200);           //将结果以十六进制格式显示
		System.out.println("400的一半是:"+str);          //输出格式化字符串
		System.out.println("3》5正确吗:"+str2); 
		System.out.println("200的十六进制数是:"+str3); 
	}
 
}

 

 

10.6使用正则表达式 

正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。

正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。

如下表:

 注意:在正则表达式中,“.”代表任何一个字符,因此在正则表达式中如果想使用普通意义的点字符“.”,必须使用转移字符“\".

在正则表达式中,可以使用方括号括起若干个字符来表示一个元字符,该元字符可代表方括号中的任何一个字符。

方括号元字符还可以为其他格式,如:

1. [^456]:代表4、5、6之外的任何字符

2. [a-r]:代表a~r中的任何一个字母

3. [a-zA-Z]:可表示任意一个英文字母

4. [a-e[g-z]]:代表a~e或g~z中的任何一个字母(并运算)

5. [a-o&&[def]]:代表字母d、e、f(交运算)

6. [a-d&&[^bc]]:代表字母 a、d(差运算)

在正则表达式中允许使用限定修饰符来限定元字符出现的次数。

例题

 
public class Judge {
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}"; //定义要匹配的E-mail地址的正则表达式
  String str1 ="aaa@";//定义要进行验证的字符串
  String str2 ="aaaa";
  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.7字符串生成器

创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的String实例,会在内存中国创建新的字符串对象。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值