字符串的用法(字符串的截取和判断)

来源:互联网 发布:编程语言实现模式 pdf 编辑:程序博客网 时间:2024/05/18 03:49
java 截取字符串的方法

1.split()+正则表达式来进行截取.
将正则传入split().返回的是一个字符串数组类型. 不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时.
例: 
String str = "abc,12,3yy98,0";
String[] strs = str.split(",");
for(int i=0; i<strs.length;i++){
   System.out.println(strs[i].toString);
}
运行结果:
abc
12
3yy98
0

2.通过subString()方法来进行字符串截取.
subString通过不同的参数来提供不同的截取方式
2.1只传一个参数:String.substring(start)(start要截取位置的索引),返回从start开始到结束的字符串
String的索引从0开始
例如:
String str = "hello word!";
System.out.println(str.substring(0));
System.out.println(str.substring(1));
System.out.println(str.substring(3));
System.out.println(str.substring(6));

结果为:
hello word!
ello word!
lo word!
word!

2.2传两个参数:String.substring(int beginIndex,int endIndex)(beginIndex 开始位置索引,endIndex 结束位置索引),
返回beginIndex位置到endIndex位置内的字符串
截取字符串时的索引包前的索引不包后边的索引
例如:
String str = "hello word!";
System.out.println(str.substring(1,4));
System.out.println(str.substring(3,5));
System.out.println(str.substring(0,4));

结果为:
ell
lo
hell

3.通过StringUtils提供的方法
3.1 StringUtils.substringBefore("dskeabcee", "e");
System.out.println(StringUtils.substringBefore("dskeabcee", "e"));

结果是:
dsk
这里是以第一个"e",为标准.
--------------------------------------
3.2 StringUtils.substringBeforeLast("dskeabcee", "e");
System.out.println(StringUtils.substringBeforeLast("dskeabcee", "e"));
结果是:
dskeabce
这里是以最后一个"e"为标准.

4. java中字符串中子字符串的查找方法:
4.1 int indexOf(String str):返回第一次出现的指定子字符串在此字符串中的索引.
4.2 int indexOf(String str, int startIndex): 从指定的索引处开始, 返回第一次出现的指定子字符串在此字符串中的索引.
4.3 int lastIndexOf(String str): 返回此字符串中最右边出现的指定子字符串的索引.
4.4 int lastIndexOf(String str, int startIndex): 从指定的索引处开始向后搜素,返回此字符串中最后一次出现的指定子字符串的索引.

indexOf()用法说明
indexOf方法返回一个整数值,指出String对象内子字符串的开始位置.如果没有找到子字符串,则返回-1.
如果startIndex是负数,则startIndex被当作零. 如果它比最大的字符位置索引还大,则它被当作最大的可能索引.

例如:(子字符串包含在目标字符串中)
String str1 = "BABEBIBOBUBABEBIBOBU";
String str2 = "B";
int s = str1.indexOf(str2);
int s2 = str1.indexOf(str2,3);
System.out.println(s);
System.out.println(s2);
结果为:
0
4

例如:(子字符串不包含在目标字符串中)
String str3 = "M";
int s1 = str1.indexOf(str3);
System.out.println(s1);
结果为:
-1

5. string.contains()方法
API文档的描述
  java.lang.String.contains()方法返回true,当且仅当此字符串包含指定的char值序列. 
  
方法:
    public boolean contains(CharSequence s);
参数:
    s代表要匹配的字符或字符串.
返回值:
    如果此方法返回true,此字符串包含,否则返回false.
异常:
    NullPointerException(当参数s为空时)

6.string与日期的相互转换
6.1 日期转换成字符串
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = format.format(date);
System.out.println(str);
结果为:
2017-07-04 10:18:02

6.2字符串转换成日期
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = "2017-07-04 09:59:15";
Date dates = format.parse(dateString);
System.out.println(dates);
结果为:
Tue Jul 04 09:59:15 CST 2017

6.3 毫秒值转换为日期
long longTime = System.currentTimeMillis();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(longTime);
String format1 = format.format(calendar.getTime());
System.out.println(format1);
结果为:
2017-07-04 10:41:34

6.4 日期转换成毫秒值
String dateStrings = "2017-07-04 09:59:15";
long time = format.parse(dateStrings).getTime();
System.out.println(time);
结果为:
1499133555000

7. StringUtils方法的操作对象是java.lang.String类型的对象,是JDK
提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String
为null则不会抛出NullPointerException,而是做了相应处理.例如:如果输入为
null则返回也是null等等).
StringUtils除了构造器,一共有130多个静态方法.
7.1 public static boolean isEmpty(String str);
作用:判断某字符串是否为空,为空的标准是str == null 或 str.length() == 0
例如:
boolean empty = StringUtils.isEmpty(null);
System.out.println(empty);
结果为: true
boolean empty1 = StringUtils.isEmpty("");
System.out.println(empty1
结果为: true
boolean empty2 = StringUtils.isEmpty(" ");
注意: 在StringUtils中空格未作非空处理;
System.out.println(empty2);
结果为: false
boolean empty3 = StringUtils.isEmpty("string");
System.out.println(empty3);
结果为: false

7.2 public static boolean isNotEmpty(String str);
作用: 判断某字符串是否非空,等于!isEmpty(String strss);
例如:
boolean notEmpty = StringUtils.isNotEmpty(null);
System.out.println(notEmpty);
结果为: false
boolean notEmpty1 = StringUtils.isNotEmpty("");
System.out.println(notEmpty1);
结果为: false
boolean notEmpty2 = StringUtils.isNotEmpty(" ");
System.out.println(notEmpty2);
结果为: true
boolean notEmpty3 = StringUtils.isNotEmpty("string");
System.out.println(notEmpty3);
结果为: true

7.3 public static boolean isBlank(String str);
作用:判断某字符串是否为空或者长度为0或由空白符(whitespace)构成
例如:
boolean blank = StringUtils.isBlank(null);
System.out.println(blank);
结果: true
boolean blank1 = StringUtils.isBlank("");
System.out.println(blank1);
结果: true
boolean blank2 = StringUtils.isBlank(" ");
System.out.println(blank2);
结果: true
boolean blank3 = StringUtils.isBlank("  ");
System.out.println(blank3);
结果: true
boolean blank4 = StringUtils.isBlank("\t \n \f \r");  //对于制表符,换行符,换页符和回车符;
System.out.println(blank4);
结果: true
boolean blank5 = StringUtils.isBlank("\b");   //"\b" 为单词边界符
System.out.println(blank5);
结果: false
boolean blank6 = StringUtils.isBlank("string");
System.out.println(blank6);
结果: false
boolean blank7 = StringUtils.isBlank("string ");
System.out.println(blank7);
结果: false

7.4 public static boolean isNotBlank(String str);
作用:判断某字符串是否不为空且长度不为0且不由空白符(whitespace)构成,等于!isBlank(String str)
例如:
boolean blank = StringUtils.isNotBlank(null);
System.out.println(blank);
结果: false
boolean blank1 = StringUtils.isNotBlank("");
System.out.println(blank1);
结果: false
boolean blank2 = StringUtils.isNotBlank(" ");
System.out.println(blank2);
结果: false
boolean blank3 = StringUtils.isNotBlank("  ");
System.out.println(blank3);
结果: false
boolean blank4 = StringUtils.isNotBlank("\t \n \f \r");  //对于制表符,换行符,换页符和回车符;
System.out.println(blank4);
结果: false
boolean blank5 = StringUtils.isNotBlank("\b");   //"\b" 为单词边界符
System.out.println(blank5);
结果: true
boolean blank6 = StringUtils.isNotBlank("string");
System.out.println(blank6);
结果: true
boolean blank7 = StringUtils.isNotBlank("string ");
System.out.println(blank7);
结果: true

7.5 public static String trim(String str);
作用: 去掉字符串两端的控制符(control characters,char<=32),如果输入为null则返回null
例如:
String trim = StringUtils.trim(null);
System.out.println(trim);
结果: null
String trim1 = StringUtils.trim("");
System.out.println(trim1);
结果: ""
String trim2 = StringUtils.trim(" ");
System.out.println(trim2);
结果: ""
String trim3 = StringUtils.trim(" \b \t \n \f \r    ");
System.out.println(trim3);
结果: ""
String trim4 = StringUtils.trim("     \n\tss   \b");
System.out.println(trim4);
结果: ss
String trim5 = StringUtils.trim(" d   d dd     ");
System.out.println(trim5);
结果: d  d dd
String trim6 = StringUtils.trim("dd     ");
System.out.println(trim6);
结果: dd
String trim7 = StringUtils.trim("     dd       ");
System.out.println(trim7);
结果: dd

7.6 public static String trimToNull(String str);
作用: 去掉字符串两端的控制符(control characters,char<=32),如果变为null或"",则返回null
例如:
String trim = StringUtils.trimToNull(null);
System.out.println(trim);
结果: null
String trim1 = StringUtils.trimToNull("");
System.out.println(trim1);
结果: null
String trim2 = StringUtils.trimToNull(" ");
System.out.println(trim2);
结果: null
String trim3 = StringUtils.trimToNull(" \b \t \n \f \r    ");
System.out.println(trim3);
结果: null
String trim4 = StringUtils.trimToNull("     \n\tss   \b");
System.out.println(trim4);
结果: ss
String trim5 = StringUtils.trimToNull(" d   d dd     ");
System.out.println(trim5);
结果: d   d dd
String trim6 = StringUtils.trimToNull("dd     ");
System.out.println(trim6);
结果: dd
String trim7 = StringUtils.trimToNull("     dd       ");
System.out.println(trim7);
结果: dd

7.7 public static String trimToEmpty(String str);
作用: 去掉字符串两端的控制符(control characters,char<=32),如果变为null或者"",则返回""
String trim = StringUtils.trimToEmpty(null);
System.out.println(trim);
结果: ""
String trim1 = StringUtils.trimToEmpty("");
System.out.println(trim1);
结果: ""
String trim2 = StringUtils.trimToEmpty(" ");
System.out.println(trim2);
结果: ""
String trim3 = StringUtils.trimToEmpty(" \b \t \n \f \r    ");
System.out.println(trim3);
结果: ""
String trim4 = StringUtils.trimToEmpty("     \n\tss   \b");
System.out.println(trim4);
结果: ss
String trim5 = StringUtils.trimToEmpty(" d   d dd     ");
System.out.println(trim5);
结果: d   d dd
String trim6 = StringUtils.trimToEmpty("dd     ");
System.out.println(trim6);
结果: dd
String trim7 = StringUtils.trimToEmpty("     dd       ");
System.out.println(trim7);
结果: dd

7.8 public static String strip(String str);
作用: 去掉字符串两端的空白符(whitespace), 如果输入为null则返回null
例如:
String strip = StringUtils.strip(null);
System.out.println(strip);
结果: null
String strip1 = StringUtils.strip("");
System.out.println(strip1);
结果: ""
String strip2 = StringUtils.strip(" ");
System.out.println(strip2);
结果: ""
String strip3 = StringUtils.strip(" \b \t \n \f \r    ");
System.out.println(strip3);
结果: "\b"
String strip4 = StringUtils.strip("     \n\tss   \b");
System.out.println(strip4);
结果: "ss \b"
String strip5 = StringUtils.strip(" d   d dd     ");
System.out.println(strip5);
结果: d   d dd
String strip6 = StringUtils.strip("dd     ");
System.out.println(strip6);
结果: dd
String strip7 = StringUtils.strip("     dd       ");
System.out.println(strip7);
结果: dd

7.9 public static String stripToNull(String str);
作用: 去掉字符串两端的空白符(whitespace),如果变为null或"",则返回null
例如:
String strip = StringUtils.stripToNull(null);
System.out.println(strip);
结果: null
String strip1 = StringUtils.stripToNull("");
System.out.println(strip1);
结果: null
String strip2 = StringUtils.stripToNull(" ");
System.out.println(strip2);
结果: null
String strip3 = StringUtils.stripToNull(" \b \t \n \f \r    ");
System.out.println(strip3);
结果: "\b"
String strip4 = StringUtils.stripToNull("     \n\tss   \b");
System.out.println(strip4);
结果: "ss \b"
String strip5 = StringUtils.stripToNull(" d   d dd     ");
System.out.println(strip5);
结果: "d   d dd"
String strip6 = StringUtils.stripToNull("dd     ");
System.out.println(strip6);
结果: "dd"
String strip7 = StringUtils.stripToNull("     dd       ");
System.out.println(strip7);
结果: "dd"

7.10 public static String stripToEmpty(String str);
作用: 去掉字符串两端的空白符(whitespace),如果变为null或"",则返回""
例如:
String strip = StringUtils.stripToEmpty(null);
System.out.println(strip);
结果: ""
String strip1 = StringUtils.stripToEmpty("");
System.out.println(strip1);
结果: ""
String strip2 = StringUtils.stripToEmpty(" ");
System.out.println(strip2);
结果: ""
String strip3 = StringUtils.stripToEmpty(" \b \t \n \f \r    ");
System.out.println(strip3);
结果: "/b"
String strip4 = StringUtils.stripToEmpty("     \n\tss   \b");
System.out.println(strip4);
结果: "ss /b"
String strip5 = StringUtils.stripToEmpty(" d   d dd     ");
System.out.println(strip5);
结果: "d   d dd"
String strip6 = StringUtils.stripToEmpty("dd     ");
System.out.println(strip6);
结果: "dd"
String strip7 = StringUtils.stripToEmpty("     dd       ");
System.out.println(strip7);
结果: "dd"