五、java数据类型之String(字符串)

CreateTime--2017年7月21日16:17:45

Author:Marydon

  (一)数据格式

  (二)初始化

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

  (三)常用操作

    5.3.1 split("指定字符")  

    语法:

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

    定义:

      拆分字符串

    示例:

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

    5.3.2 trim()

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

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

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

    5.3.4 substring(startIndex,endIndex)

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

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

    5.3.5 indexOf(str)

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

    5.3.6 lastIndexOf(str)

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

    5.3.7 trim()

    定义:去除字符串前后空格

    5.3.8 length()

    定义:返回字符串的长度

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

    5.3.9 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.10 equals()

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

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

    5.3.11 isEmpty()

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

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

    说明:

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

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

      StringUtils.isEmpty()用法举例

      需要导入:

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

  (四)其它用法

  (五)格式转换

    5.5.1 String 与 int的相互转化

      5.5.1.1 String-->int

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

      5.5.1.2 int-->String

  1. /**
  2. * int转String
  3. */
  4. //使用String类的valueOf()方法
  5. String str1 = String.valueOf(3);
  6. //使用Integer类的toString()方法
  7. String str2 = Integer.toString(3);
  8. //拼接空字符
  9. String str3 = 3 + "";

    5.5.2 String 与 Integer的相互转化

      5.5.2.1 String-->Integer

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

      5.5.2.2 Integer-->String

  1. /**
  2. * Integer转String
  3. */
  4. Integer r = 1;
  5. String str4 = r.toString();

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

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

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

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

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

    5.5.5 String转char

    方法:str.toCharArray()

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

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

    5.5.6 String转byte

    方法:str.toCharArray()

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

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

  (六)进一步封装

    5.6.1 非空校验

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

    方式二:自定义封装

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

  1. /**
  2. * 校验是否为空(null && "")
  3. */
  4. public static boolean isEmpty(String val) {
  5. boolean flag = false;
  6. if (val == null || "".equals(val)) {
  7. flag = true;
  8. }
  9. return flag;
  10. }
  11.  
  12. /**
  13. * 校验是否不为空(null && "")
  14. */
  15. public static boolean isNotEmpty(String val) {
  16. return !isEmpty(val);
  17. }

  20200323

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

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

  1. JSONObject json = new JSONObject();
  2. // 方式一
  3. System.out.println(String.valueOf(json.get("controls")));
  4. // 方式二
  5. System.out.println((String) json.get("controls"));
  6. // 报错:空指针异常
  7. System.out.println(json.get("controls").toString());

    

相关推荐:

 

java String字符串的更多相关文章

  1. Java String字符串/==和equals区别,str。toCharAt(),getBytes,indexOf过滤存在字符,trim()/String与StringBuffer多线程安全/StringBuilder单线程—— 14.0

    课程概要 String 字符串 String字符串常用方法 StringBuffer StringBuilder String字符串: 1.实例化String对象 直接赋值  String str=& ...

  2. Java String 字符串操作小结

    // 转载加编辑 -- 21 Apr 2014 1. Java字符串中子串的查找 Java中字符串中子串的查找共有四种方法,如下: 1.int indexOf(String str) :返回第一次出现 ...

  3. java String字符串——进度1

    String字符串    在JAVA中提供了多种创建字符串对象的方法,这里介绍最简单的两种,    第一种是直接赋值,    第二种是使用String类的构造方法:    如下所示:    Strin ...

  4. Java String字符串深入详解

    Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "hello";,另一种就是使用new这种标准的构造对象的方法,如String str = new ...

  5. Java String 字符串类细节探秘

    一. 字符串基本知识要点 字符串类型String是Java中最常用的引用类型.我们在使用Java字符串的时候,通常会采用两种初始化的方式:1. String str = "Hello Wor ...

  6. Java String字符串补0或空格

    package cn.com.songjy; import java.text.NumberFormat; //Java 中给数字左边补0 public class NumberFormatTest  ...

  7. android TextView字体设置最少占多少行. 及其 Java String 字符串操作 . .

    ①  字体设置: 修改代码 :  GridViewActivity.java priceTv为 TextView priceTv.setMaxLines(3); //当多与7个字fu的时候 , 其余字 ...

  8. java String字符串操作 字符串加密等

    子串加密 1,设计思想 (1)输入一个字符串 (2)通过toCharArray()的方法将字符串转换成字符数组 (3)新建一个字符数组用来存储修改后的字符数组 2,程序流程图 3,源代码 packag ...

  9. Java String字符串的不可变

    Java 通过把String类设计为final使类不可继承,将变量value设置为private并且是final的,且value没有setter方法,不可修改. 为什么这么设计: 1.字符串常量池的需 ...

随机推荐

  1. IP地址便捷修改器 V3.5 绿色版

    IP地址便捷修改器 V3.5 绿色版 http://www.downxia.com/downinfo/47786.html#softdown

  2. setTimeout(fn, 0) 的作用

    在 zepto 源码中,$.fn 对象 有个 ready 函数,其中有这样一句 setTimeout(fn,0); 1 $.fn = { 2 ready: function(callback){ 3 ...

  3. struts2 select 默认选中

    jsp: <s:select list="#{'1':'男','2':'女'}" name="sex"/> action: private Stri ...

  4. swing入门教程

    (转自http://terrificwanjun.bokee.com/) UI 组件简介 在开始学习 Swing 之前,必须回答针对真正初学者的一个问题:什么是 UI?初学者的答案是“用户界面”.但是 ...

  5. 批处理bat一键安装APK

    批处理bat一键安装APK 2018年10月11日 10:48:28 xyzshenxiang 阅读数:77   在安装apk时,每次都得拷贝到手机内存中,然后在手机上操作安装这样做非常不方便,下面介 ...

  6. OpenCV学习(37) 人脸识别(2)

          在前面一篇教程中,我们学习了OpenCV中基于特征脸的人脸识别的代码实现,我们通过代码 Ptr<FaceRecognizer> model = createEigenFaceR ...

  7. 混沌数学之Henon吸引子

    Henon吸引子是混沌与分形的著名例子. 相关软件:混沌数学及其软件模拟相关代码: // http://wenku.baidu.com/view/d51372a60029bd64783e2cc0.ht ...

  8. C#调用C++ memcpy实现各种参数类型的内存拷贝 VS marshal.copy的实现 效率对比

    using System; using System.Runtime.InteropServices; using System.IO; namespace tx { struct ST { publ ...

  9. 如何查看ETW Trace?

    三种方法: LogParser Tractrpt - C:\Windows\System32 SvcTraceViewer.exe   后面的链接中有使用的详细步骤.   参考资料 ========= ...

  10. JavaScript生成GUID的方法

    一.生成GUID的方法一     JScript 代码   复制 function guid() { function S4() { return (((1+Math.random())*0x1000 ...