当前位置: 首页 > news >正文

java String字符串

 

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

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

Author:Marydon

  (一)数据格式

  (二)初始化

// 方式一
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("指定字符、字符串")

    定义:判断字符串是否以指定字符串开头(前缀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()用法举例

       需要导入:

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);
} 

  (四)其它用法

  (五)格式转换

    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 && "")
 */
public static boolean isEmpty(String val) {
    boolean flag = false;
    if (val == null || "".equals(val)) {
        flag = true;
    }
    return flag;
}

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

  

 相关推荐:

  • java 截取字符串

 

 

转载于:https://www.cnblogs.com/Marydon20170307/p/7218431.html

相关文章:

  • MySQL主主高可用(keepalive)
  • Android-通过SlidingMenu高仿微信6.2最新版手势滑动返回(二)
  • jquery的事件和动画
  • C#的初学之路(一)
  • 查询oracle数据库中当前数据库所有表的名称
  • HTML5移动开发实战必备知识——本地存储(2)
  • Maven管理不同环境的配置文件
  • Git错误解决(windows版本下的Git Shell)
  • Sublime Text3快捷键
  • exports 和 module.exports 的区别
  • C#内存流示例-----用内存流来读取图片
  • dinic(当前最优模板)
  • tomcat catalina.sh JAVA_OPTS参数说明与配置
  • Hibernate学习10——Hibernate 查询方式
  • 2014年24段魔尺变球视频教程(升级版)
  • hexo+github搭建个人博客
  • Cookie 在前端中的实践
  • FineReport中如何实现自动滚屏效果
  • JavaScript 一些 DOM 的知识点
  • PAT A1050
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • React 快速上手 - 07 前端路由 react-router
  • Ruby 2.x 源代码分析:扩展 概述
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 当SetTimeout遇到了字符串
  • 规范化安全开发 KOA 手脚架
  • 检测对象或数组
  • 力扣(LeetCode)22
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 思考 CSS 架构
  • 走向全栈之MongoDB的使用
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • (+4)2.2UML建模图
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (转)3D模板阴影原理
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .axf 转化 .bin文件 的方法
  • .gitignore文件_Git:.gitignore
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .naturalWidth 和naturalHeight属性,
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 事件模型教程(二)
  • .NET连接MongoDB数据库实例教程
  • @html.ActionLink的几种参数格式
  • @Import注解详解
  • @ResponseBody
  • [<死锁专题>]
  • [C#]C#学习笔记-CIL和动态程序集
  • [CERC2017]Cumulative Code
  • [CSAWQual 2019]Web_Unagi ---不会编程的崽
  • [ES-5.6.12] x-pack ssl
  • [go 反射] 进阶
  • [Hadoop in China 2011] Hadoop之上 中国移动“大云”系统解析
  • [idea]关于idea开发乱码的配置