java String字符串

  (一)数据格式

  (二)初始化

// 方式一
String str;// 先声明,后赋值
// 执行其他代码
str = "赋值";
// 方式二:声明+赋空值(通常使用)
String str2 = "";
// 方式三:声明并赋需要的值(一步到位)
String str3 = "实际值"; 

  (三)常用操作

    5.3.1 split("指定字符")  

    语法:

      String.split("指定字符"),指定字符如果是特殊字符串需要使用"\\"转义        

    定义:

      拆分字符串

    示例:

String cookieStr = "userId$1|userName$%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E5%91%98|home$index|"; if (cookieStr.indexOf("userId") > -1) { String[] cooks = cookieStr.split("\\|"); for (String cook : cooks) { String[] str = cook.split("\\$");//或[$] if (str[0].equals("userId")) { return str[1]; } } }

    5.3.2 trim()

    定义:去除字符串左右空格(中间的空格无法去除)

    5.3.3 startsWith()和endsWith()

    startsWith("指定字符、字符串")和endsWith("指定字符、字符串")

    定义:判断字符串是否以指定字符串开头(前缀prefix)和结尾(后缀suffix),返回true或false

    5.3.4 substring(startIndex,endIndex)

    定义:截取字符串,截取位置[startIndex,endIndex)

// 去掉最后一个字符 params.substring(0 ,params.length() - 1);

    UpdateTime--2017年8月17日08:12:35

    5.3.5 indexOf(str)

    定义:返回已知字符串str在指定字符串中第一次出现的元素下标索引号,如果不存在,返回-1

    5.3.6 lastIndexOf(str)

    定义:返回已知字符串str在指定字符串中第一次出现的元素下标索引号,如果不存在,返回-1

    5.3.7 length()

    定义:返回字符串的长度

    UpdateTime--2017年8月23日17:24:39

    5.3.8 replace(param1,param2)

    定义:将字符串中的部分字符串param1全部替换成param2

    语法1:

      replace(CharSequence target,CharSequence replacement)

    说明:传的参数是字符串String

    语法2:

      replace(char oldChar, char newChar)

    说明:传的参数是单字符char

    小结:replace()方法传的参数可以是字符串String,也可以是单字符char

    UpdateTime--2017年11月10日08:31:01

    5.3.9 equals()

    定义:判断两个字符串的值是否相等

    语法:str1.equals(str2),相等返回true,否则返回false

    5.3.10 isEmpty()

    定义:判断该字符串是否为空,即是否==""

    语法:str.isEmpty(),如果为空返回true,否则返回false

    说明:

      1.str必须是字符串,不能为null,如果是null,调用isEmpty()方法会抛出空指针异常;

      2.非空校验,该方法存在弊端,可以使用5.2.1重新封装的方法,也可以调用apache的StringUtils.isEmpty()方法,举例说明。

      StringUtils.isEmpty()用法举例

       需要导入:

import org.apache.commons.lang.StringUtils;        
public static void main(String[] args) { // 非空校验 Map<String, String> paramMap = new HashMap<String, String>(); // boolean res = paramMap.get("aa").isEmpty();会造成空指针 boolean res = StringUtils.isEmpty(paramMap.get("aa")); // 相当于 res = (null == paramMap.get("aa") || paramMap.get("aa").equals("")); System.out.println(res); } 

  2023年2月2日16:00:01

  5.3.11 contains()

  定义:判断是否包含指定字符串

  (四)其它用法

  (五)格式转换

    5.5.1 String 与 int的相互转化

      5.5.1.1 String-->int

/** * 将String类型的数字转换成int类型 */ int r1 = Integer.parseInt("123");

      5.5.1.2 int-->String

/** * int转String */ //使用String类的valueOf()方法 String str1 = String.valueOf(3); //使用Integer类的toString()方法 String str2 = Integer.toString(3); //拼接空字符 String str3 = 3 + "";

    5.5.2 String 与 Integer的相互转化

      5.5.2.1 String-->Integer

/** * 将String类型的数字转换成Integer类型 */ Integer r2 = Integer.valueOf("123");

      5.5.2.2 Integer-->String

/** * Integer转String */ Integer r = 1; String str4 = r.toString();

    5.5.3 String类型转换成八种基本数据类型 

// 调用对应封装类的pase+“基本数据类型” long l3 = Long.parseLong("123");

    5.5.4 String类型转换成八种基本数据类型的封装类

// 调用对应封装类的valueOf()方法 Long L3 = Long.valueOf("123");

    UpdateTime--2017年9月7日16:33:06 

    5.5.5 String转char

    方法:str.toCharArray()

    定义:将字符串转换成char数组

// 字符串转char数组 char [] chars = str.toCharArray();

    5.5.6 String转byte 

    方法:str.toCharArray()

    定义:将字符串转换成byte数组

// 字符串转字节数组 byte [] bytes = str.getBytes();

  (六)进一步封装

    5.6.1 非空校验

    方式一:使用org.apache.commons.lang.StringUtils;

    方式二:自定义封装

    重新对String的isEmpty()方法进行封装,这种方法可以避免空指针异常。(对String类的扩展)

/**
 * 校验是否为空(null && "")
 * @explain
 * @param val
 * @return
 */
public static boolean isEmpty(String val) {
	boolean flag = false;
	if (val == null || "".equals(val)) {
		flag = true;
	}
	return flag;
}

/**
 * 校验是否不为空(null "")
 * @explain
 * @param val
 * @return
 */
public static boolean isNotEmpty(String val) { return !isEmpty(val); }

  20200323

  object类型转String时,可能会存在空指针的情况,所以,为了避免这种情况的发生,不能使用String.toString()。

  两种解决方案:强制转换或者String.valueOf()

JSONObject json = new JSONObject();
// 方式一
System.out.println(String.valueOf(json.get("controls")));
// 方式二
System.out.println(json.get("controls" ).toString());
// 错误方式
// System.out.println((String) json.get("controls" )); // 报错:空指针异常

2023年11月9日17:58:56

提取字符串当中的数字

String ageString = "30岁";
Pattern pattern = Pattern.compile("\\d+"); // 匹配一个或多个数字
Matcher matcher = pattern.matcher(ageString);
String ageDigital = "";
if (matcher.find()) {
    ageDigital = matcher.group(0);// 30
}

说明:此方法只能提取字符串左侧的数字。

拆分数字和汉字

String ageUnit = ageString.substring(ageDigital.length());// 岁

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

posted @ 2017-07-21 16:33  Marydon  阅读(715)  评论(0编辑  收藏  举报