Java从入门到精通——字符串

Java从入门到精通——字符串

1 获取字符串信息

已知字符串:

String str = new String();

1.1 获取字符串长度

str.length();

1.2 字符串查找

str.indexOf(substr);//返回substr在str中首次出现的索引位置,若没有,则返回-1
str.lastIndexOf(substr);//返回substr在str中最后一次出现的索引位置,若没有,则返回-1

注意:lastIndexOf()方法中的参数是空字符串”“(没有空格),则返回的结果与调用该字符串length()方法返回的结果相同。

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

str.charAt(int index);//返回下标为index处的字符

2 字符串操作

2.1 获取子字符串

str.substring(int beginIndex);
//返回从指定的索引位置开始截取直到该字符串结尾的子串

注意:在字符串中,空格占一个索引位置。

str.substring(int beginIndex,int endIndex);
//返回索引位置从beginIndexendIndex的子串

2.2 去除空格

str.trim();
//返回str字符串的副本,忽略前导空格和尾部空格。

2.3 字符串替换

str.repalce(char oldChar,char newChar);
//将指定的字符或字符串替换成新的字符或字符串,返回一个新的字符串。
//如果oldChar没有出现在该对象表达式中的字符序列中,则将原字符串返回。

注意:区分大小写。

2.4 判断字符串的开始与结尾

str.startsWith(String prefix);
//判断当前字符串对象的前缀是否为参数指定的字符串。
str.endsWith(String suffix);
//判断当前字符串是否为以给定的子字符串结束。

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

2.5 判断字符串是否相等

注意:不能简单的用比较云算符“==”来比较字符串对象。因为比较字符串比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回false。

str.equals(String otherstr);
//如果两个字符串具有相同的字符和长度,则返回true,区分大小写
str.equalsIgnoreCase(String otherstr);
//忽略大小写比较两个字符串是否相等

2.6 按字典顺序比较两个字符串

str.compareTo(String otherstr);
//按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode值,按字典顺序将此String对象表示的字符序列与参数字符串所表示的字符序列进行比较。
//如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数;
//如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数;
//如果这两个字符串相等,则结果为0.

2.7 字母大小写转换

str.toLowerCase();
//将字符串中的所有字符从大写字母改写成小写字母
str.toUpperCase();
//将字符串中的所有字符从小写字母改写成大写字母

2.8 字符串分割

str.split(String sign);
//根据给定的分割符sign对字符串进行拆分
str.split(String sign,int limit);
//根据给定的分割符sign对字符串进行拆分,并限定拆分的次数limit

注意:
1、没有统一的对字符进行分割的符号。如果想定义多个分割符,可使用符号“|”。例如,“,l=”表示分割符分别为“,”和“=”。
2、分隔符也可以使用正则表达式。

3 格式化字符串

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

str.format(String format,Object...args);
//该方法使用指定的格式字符串format和参数args返回一个格式化字符串,
//格式化后的新字符串使用本地默认的语言环境。
str.format(Local l,String format,Object...args);
//l:格式化过程中要应用的语言环境。
//如果1为nu11,则不进行本地化。

3.1 日期和时间字符串格式化

  1. 日期格式化:
Date date = new Date();
String s = String.format("%te",date);
//通过format()方法对date进行格式化

表3-1 常用的日期格式化转换符
常用的日期格式化转换符

  1. 时间格式化
    表3-2 时间格式化转换符
    时间格式化转换符

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

3.2 常规类型格式化

表3-4 常规转换符
常规转换符

4 使用正则表达式

正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。例如,” \d”表示数字0~9中的任何一个,”\d”就是元字符。正则表达式中元字符及其意义如表4-1所示。

表4-1 正则表达式中的元字符
正则表达式中的元字符
在正则表达式中允许使用限定修饰符来限定元字符出现的次数。例如,”A*”代表A可在字符串中出现0次或多次。限定修饰符的用法如表4-2所示。

表4-2限定修饰符
限定修饰符

判断指定的变量是否是合法的E-mail地址:

String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
str.matches(regex);

5 字符串生成器

StringBuilder类,若操作可变字符串,则利用StringBuilder效率较高。
若要使用StringBuilder最后输出字符串结果,可使用toString()方法。
该类的常用方法如下:

append(content);
//向字符串生成器中追加内容,content可以是任何类型的数据或者具他对象

insert(int offset arg);
//向字符串生成器中的指定位置插入数据内容;
//offset:字符串生成器的位置。该参数必须大于等于0,且小于等于此序列的长度。
//arg:将插入至字符串生成器的位置。该参数可以是任何数据类型或其他对象。

delete(int start,int end);
//移除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值