Java字符串2 ----学习笔记整理

目录

 

一、声明字符串

二、创建字符串

三、引用字符串常量来创建字符串变量

四、连接字符串

五、获取字符串信息

六、操作字符串

六、判断字符串的开始结尾

七、判断字符串是否相等(内存,内容是否一致,返回类型为boolean)

7.1、equalsIgnoreCase()

7.2、Equals()

九、按字典顺序比较两个字符串

9.1、compareTo();

9.2、CompareTo()方法只有在equals(Object)方法返回true时才返回

十、字符串的大小转换

十一、字符串分割

11.1、Split(String sign);

11.2、Split(String sign,int limit)

十二、格式化字符串

12.1、Format()创建格式化的字符串

12.2、format(Local l,String format,Object...args)

12.3、日期和时间字符串格式化

           12.3.1、常用日期格式转换符

12.3.2、时间格式化

12.4、常规类型格式化

      12.4.1、常规转换符

十三、使用正则表达式

         13.1   正则表达式中的元字符

 


一、声明字符串

在Java语言中字符串必须包含在(双引号中)””(两种方式)

String a = “abcd”;

Stirng a = new string(“abcd”) 两者可视与等价String str = [null]

Str  标识符,字符串的变量名称

String 变量的类型

Null  如果省略,表示str未初始化,否则表示声明的字符串值等于null

声明String必须初始化才能使用,否则编译器会报错(变量未被初始化错误)

 

二、创建字符串

String类的常用构造方法(数组)

(1)String(char a[])

Char a[] = {“g”,“o”,“o”,“d”}

String s = new String(a)         

等价于

String s = new String(“good”);

 

(2)String(char[]value)

该构造方法可分配一个新的String对象,使其表示字符数组中所有元素连接的结果

Char a[] ={“s”,“t”,“u”,“d”,“e”,“n”,“t”};

String s = new String(a);

等价于String s = new String(“student”);

 

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

Char a[]={“s”,“t”,“u”,“d”,“e”,“n”,“t”};

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

                         等价于

  String s = new String(“uden”);

Offset表示开始截取字符串的位置

Length表示截取字符串的长度

 

 

三、引用字符串常量来创建字符串变量

String str1,str2;

str1 = “We are  students”

str2 =”We are students”

Str1str2引用相同的字符串常量具有相同的实体

四、连接字符串

1)连接多个字符串

(2)多个字符串使用“+”连接字符串

(3Java中一对双引号内的字符串不能分开两行

(4)连接其他数据类型

  可以与基本类型数据进行连接,连接是基本数据类型直接转换为字符串类型

 

五、获取字符串信息

1)获取字符串长度:str.length();

//将字符串str的长度输出

System.out.println("字符串str的长度:" + str.length());

2)字符串查找:

1indexOf();搜索字符或字符串首次出现的索引位置

2lastIndexOf();搜索字符或字符串最后一次出现的索引位置

获取指定字符串索引位置

//将空字符串在str中的索引位置赋值给变量size

       int size = str.lastIndexOf(" ");

      //将变量输出

      System.out.println("空字符在字符串str中的索引位置是:" + size)

 

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

Str.charAt(int index)

String str = "helloworld";//定义str字符串

char mychar = str.charAt(5);//将字符串str中位置是5的字符串返回

六、操作字符串

1)获取字符串:

1StringsubString()方法对字符串进行截取

Str.substring( int beginIndex)

beginIndex:截取字符的索引开始位置

String str = "Hello world";

String substr = str.substring(3);

 

Substring(int beginIndex,int endIndex)

endIndex:截取字符索引的结束位置

String substr = str.substring(0,3)

 

2)去除空格trim()忽略前导空格,和尾部空格

Str.trim();

Str为任意字符串对象

String str = “java  class”;

System.out.printin(“字符串原来的长度:” + str.length());

System.out.printin(“去掉空格后的长度” + str.trim().length());

 

3)字符串替换str.replace(char oldchar, char newchar);

      String str = "address";

      String newstr = str.replace("a","A");

      System.out.println(newstr);

六、判断字符串的开始结尾

1startsWith();判断当前字符串的前缀是否是是参数指定的字符串

Str.startsWith(Stirng prefix);

Prefix:前缀的字符

2endsWith();判断当前字符串的后缀是否是是参数指定的字符串

Str.endsWith(String suffix);

Sufifix:后缀字符

String mun = “22045612”;

Boolean b = num1.startsWith(“22”);

String num1 ="22015614";

   String num2 = "214021378";

   boolean b =num1.startsWith("22");

   boolean b2 = num1.endsWith("78");

   boolean b3 = num2.startsWith("22");

   boolean b4 = num2.endsWith("78");

   System.out.println("字符串num1是以“22”开始的吗?" + b);

   System.out.println("字符串num1是以“78”结束的吗" + b2);

   System.out.println("字符串num2是以“22”开始的吗?" + b3);

   System.out.println("字符串num2是以“78”结束的吗?" + b4);

七、判断字符串是否相等(内存,内容是否一致,返回类型为boolean

7.1、equalsIgnoreCase()

字符串比较是忽略大小写

Str.equalsIgnoreCase(String otherstr)

Str,Otherstr:是参加比较的字符串对象

 

 

7.2、Equals()

字符串比较是区分大小写

Str.equals(String otherstr)

String s1 = new String("abc");

   String s2 = new String("ABC");

   String s3 = new String("abc");

   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 + "equalsIgnoreCase" + s2 + ":" + b2);

九、按字典顺序比较两个字符串

该比较基于字符串各个字符的Unicode

9.1、compareTo();

Str.compare To(String otherstr)

Str,othestr 参加比较的两个字符串对象

9.2、CompareTo()方法只有在equals(Object)方法返回true时才返回

 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的比较结果输出

     

十、字符串的大小转换

1toLowerCase();

String newstr = str.toLowerCase();

//实现小写转换

 

2toUpperCase();

String newstr2 = str.toUpperCase();

//实现大写转换

 

十一、字符串分割

11.1、Split(String sign);

Sign为分割字符串的分割符,也可是正则表达式

 

11.2、Split(String sign,int limit)

Limit:限制的分割次数

String str = new String("abc,def,ghi,gkl");

   String[] newstr = str.split(",");

   for(int i=0;i< newstr.length;i++){

      System.out.println(newstr[i]);

   }

   String[] newstr2 = str.split(",",2);

   for(int j=0;j

 

十二、格式化字符串

12.1、Format()创建格式化的字符串

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

 Format 格式字符串

Args 格式字符串中由格式说明符引用的参数,如果还有格式说明符以外的参数,则忽略这些额外的参数,此参数的数目是可变的,可以为0
 

12.2、format(Local lString formatObject...args)

L :格式化过程中要应用的语言环境,如果1null,则不进行本地化

Format:格式化字符串

Args:

 

12.3、日期和时间字符串格式化

           12.3.1、常用日期格式转换符

转换符

说明

示列

%te

一个月中的某一天(1--31

2

%tb

指定语言环境的月份简称

Feb(二月)

%tB

指定语言环境的月份全称

February(二月)

%tA

指定语言环境的星期几全称

Monday(三月)

%ta

指定语言环境的星期几简称

Mon(三月)

%tc

包括全部日期的时间信息

星期二 三月 25 132722

%tY

4位年份

2008

%tj

一年中的第几天

085

%tm

月份

03

%td

一个月中的第几天(01 -- 31

02

%ty

2为年份

08

Date date = new Date();

      String year = String.format("%tY",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 + "号");

12.3.2、时间格式化

                   时间格式转化符

转换符

说明

示例

%tH

2位数字的24小时制的小时(00 -- 23

14

%tI

2位数的12小时制的小时(01 -- 12

05

%tk

2位数字的24小时制的小时(0 -- 23

5

%tl

2位数字的12小时制的小时(1 --12

10

%tM

2位数的分钟(00 -- 59

02

%tS

2位数的秒数(00 --60

12

%tL

3位数字的毫秒数(000 --999

920

%tN

9位数的毫秒数

 

%tp

指定语言环境下上午或下午的标记

 PM(英文),上午(中文)

%tz

相对于GMT RFC 82 格式的数字区偏移量

 + 0800

%tZ

时区缩写形式的字符串

CST

%ts

1970-01-01 00:00:00至现在的经过的秒数

 

%tQ

1970-01-01 00:00:00至现在的经过的毫秒数

 

 

时间格式化 时间格式化          

转换符

说明

示例

%tF

“年--日”格式(四位年份)

 

%tD

“年//日”格式(两位年份)

 

%tc

全部日期和时间信息

星期二 三月 25 16:20:00 CST 2008

%tr

“时:分:秒:PM(AM)”格式(12时制)

03:33:15 下午

%tT

“时:分:秒:”格式(24时制)

15:13:50

%tR

“时:分”格式(24时制)

15:12

 

 

12.4、常规类型格式化

      12.4.1、常规转换符

转换符

说明

示例

%b %B

结果被格式化为布尔型

True

%h %H

结果被格式化为散列码

A05A5198

%s %S

结果被格式为字符串类型

abcd

%c %C

结果被转为字符类型

a

%d

结果被格式化为十进制

 

%o

结果被格式化为八进制

 

%x %X

结果被格式化为十六进制

 

%e

 

 

 

 

 

 

 

 

 

十三、使用正则表达式

         13.1   正则表达式中的元字符

 

 

元字符

正则表达式中的元字符写法

意义

\d

\\d

代表任意一个字符

\D

//D

代表0 --9的任何一个数字

\s

\\s

代表空白字符,“\t,”\n”

\S

\\S

代表非空白字符

\w

\\w

代表可用作标识符的字符,但不包括“$

\W

\\W

代表不可用作表示符的字符

\p{Lower}

\\p{Lower}

代表任何小写字母a --z

\P{Upper}

\\p{Upper}

代表大写字母A --Z

\p{ASCII}

\\p{ASCII}

ASCII字符

\{Alpha}

\\p{Alpha}

字符字母

\p{Digit}

\\p{Digit}

十进制数字,即0 --9

\p{Alnum}

\\p{Alnum}

数字或字母字符

\p{Punct}

\\p{Punct}

表点符号

\p{Graph}

\\p{Graph}

可见字符:[\p{Alnum}\p{Punct}]

\p{Print}

\\p{Print}

可打印字符:[\p{Graph}\x20]

\p{Blank}

\\p{Blanck}

空格或制表符:[\t]

\p{cntrl}

\\{cntrl}

控制字符:[\x00-\xlF\x7F]

 

使用正则表达式必须要使用转意字符(\,否则代表的是普通意思

元字符:正则表达式中可以用[](中括号)括起若个字符来表示,该元字符可以代表方括号中任意一个元字符

  1. [^456]:代表4,5,6之外的任意一个字符
  2. [a - r]:代表a - r中的任意一个字符
  3. [a-d&&[^bc]]:代表字母a,d(差运算)
  4. [a-o&&[def]]:代表字母d,e,f(交运算)
  5. [a - e[g - z]]:代表a -e g -z 中的任何一个字母(并运算)

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

限定修饰符

意义

实例

0次或1

A

*

0次或多次

A*

+

一次或多次

A+

{n}

正好出现n

A{2}

{n,}

至少出现n

A{3}

{n,m}

出现nm

A{2,6}

 

Matches():检测匹配的字符串是否满足给定的字符串;调用此方法的 str.matches(regex) 形式与以下表达式产生的结果完全相同Pattern.matches(regex,str )

Regex:匹配字符串的正则表达式

if(str1.matches(regex)){

        //判断字符串变量是否与正则表达式匹配

        System.out.println(str1 + "是一个合法的E_mail地址格式" );

                 }

字符串生成器

成功创建的字符串,其长度是固定的,内容是不能被改变的和编译的。

1SringBuilder() 初始容量16个字符,可指定字符长度,能根据附加的字符自动增长容量(当附加的字符长度超过16个字符)

 

toString()可动态的执行添加,删除,插入等编辑操作

 Intchar,boolean,String,double,通过该方法的多个重载形式,可实现接受任何类型的数据

append(content); 向字符串生成器中追加内容

Insert(int offset arg);向字符串生成器中的指定位置插入数据

Delete(int start,int end);移除此序列的子字符串中的字符,该子字符串从指定的start处开始,一直到索引end -1处的字符,如果不存在这样的字符,则一直到序列的尾部,如果start等于end,则不发生任何改变

 

快捷键

新建:shift + alt + N

关闭当前编辑框:ctrl + w

关闭所有编辑框:ctrl + shift + w

查找/替换:ctrl +F

 

你可能感兴趣的:(Java基础篇)