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);
}
20200323
object类型转String时,可能会存在空指针的情况,所以,为了避免这种情况的发生,不能使用String.toString()。
两种解决方案:强制转换或者String.valueOf()
JSONObject json = new JSONObject();
// 方式一
System.out.println(String.valueOf(json.get("controls")));
// 方式二
System.out.println((String) json.get("controls"));
// 报错:空指针异常
System.out.println(json.get("controls").toString());
相关推荐:
java String字符串的更多相关文章
- Java String字符串/==和equals区别,str。toCharAt(),getBytes,indexOf过滤存在字符,trim()/String与StringBuffer多线程安全/StringBuilder单线程—— 14.0
课程概要 String 字符串 String字符串常用方法 StringBuffer StringBuilder String字符串: 1.实例化String对象 直接赋值 String str=& ...
- Java String 字符串操作小结
// 转载加编辑 -- 21 Apr 2014 1. Java字符串中子串的查找 Java中字符串中子串的查找共有四种方法,如下: 1.int indexOf(String str) :返回第一次出现 ...
- java String字符串——进度1
String字符串 在JAVA中提供了多种创建字符串对象的方法,这里介绍最简单的两种, 第一种是直接赋值, 第二种是使用String类的构造方法: 如下所示: Strin ...
- Java String字符串深入详解
Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "hello";,另一种就是使用new这种标准的构造对象的方法,如String str = new ...
- Java String 字符串类细节探秘
一. 字符串基本知识要点 字符串类型String是Java中最常用的引用类型.我们在使用Java字符串的时候,通常会采用两种初始化的方式:1. String str = "Hello Wor ...
- Java String字符串补0或空格
package cn.com.songjy; import java.text.NumberFormat; //Java 中给数字左边补0 public class NumberFormatTest ...
- android TextView字体设置最少占多少行. 及其 Java String 字符串操作 . .
① 字体设置: 修改代码 : GridViewActivity.java priceTv为 TextView priceTv.setMaxLines(3); //当多与7个字fu的时候 , 其余字 ...
- java String字符串操作 字符串加密等
子串加密 1,设计思想 (1)输入一个字符串 (2)通过toCharArray()的方法将字符串转换成字符数组 (3)新建一个字符数组用来存储修改后的字符数组 2,程序流程图 3,源代码 packag ...
- Java String字符串的不可变
Java 通过把String类设计为final使类不可继承,将变量value设置为private并且是final的,且value没有setter方法,不可修改. 为什么这么设计: 1.字符串常量池的需 ...
随机推荐
- gcc 内联汇编
http://www.cnblogs.com/zhuyp1015/archive/2012/05/01/2478099.html
- VB.NET章鱼哥出品—怎样解决MDI子窗口被父窗口中的控件覆盖的问题
近期有个网友问我这个问题,我就上网搜了下,结果非常失望.有几个在CSDN上发的求助帖.看到最后都没有找到明白的答案. 这里笔者在网上找到了API函数SetParent(),并对网上的错误进行了改动,并 ...
- Xcode GDB 调试
关于GDB 对于大多数Cocoa程序员来说,最常用的debugger莫过于Xcode自带的调试工具了.而实际上,它正是gdb的一个图形化包装.相对于gdb,图形化带来了很多便利,但同时也缺少了一些重要 ...
- Ladda 应用提交表单的时候显示loading载入中 包含不同位置,不同效果
Ladda 应用提交表单的时候显示loading载入中 包含不同位置,不同效果 不同大小.位置,效果,进度条等 演示 XML/HTML Code <article class="exa ...
- 阿里春招Android面经
作者:淘萄桃 链接: https://www.jianshu.com/p/a07ccaad832d 本文由作者授权发布. 笔者参加18年阿里春招,有幸最终拿到阿里offer,base杭州,岗位客户端开 ...
- [GIT] Git 工作流程(Git flow, Github flow flow, Git lab flow)
reference : http://www.ruanyifeng.com/blog/2015/12/git-workflow.html Git 作为一个源码管理系统,不可避免涉及到多人协作. 协作必 ...
- [Git] An efficient GIT workflow for mid/long term projects
reference : http://fle.github.io/an-efficient-git-workflow-for-midlong-term-projects.html Our full-w ...
- 【BZOJ】【1415】【NOI2005】聪聪和可可
数学期望+记忆化搜索 论文:<浅析竞赛中一类数学期望问题的解决方法>——汤可因 中的第一题…… Orz 黄学长 我实在是太弱,这么简单都yy不出来…… 宽搜预处理有点spfa的感觉= = ...
- HTTP响应状态码【总结】
常见的状态码 [1XX]表示[消息] [2XX]表示[成功] [3XX]表示[重定向] [4XX]表示[请求错误] [5XX]表示[服务器端错误] 200:OK.请求被正常处理 204:No Cont ...
- 基于jQuery的Cookie操作插件--简单而又没有兼容性问题!
在网页客户端,我们经常会遇到读取或者设置cookie的情况,如果用纯生的js我们可能会遇到一些兼容性带来的麻烦,这里给大家介绍一个比较实用jquery操作cookie的插件,插件的源代码如下: 1 2 ...