目录

类型转换

String —>Date

Date —>String

int —> String

String —> int

String <—> byte

String 转成Double二维数组

String切割并返回list(工具 Guava)

其他类型转换String

1、toString()

2、String.valueOf()

3、强制转换 (String)data

String对象初始化

字符串拼接

字符串补零

字符串基本操作

常用api

String字符串中包含某个字段

正则表达式


类型转换

String —>Date

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
Date date = sdf.parse(dateString);

Date —>String

Date ddate = new Date();
String sdate=(new SimpleDateFormat("yyyy-MM-dd")).format(ddate);

int —> String

int i=12345;
String s="";
//第一种方法
s=i+"";
//第二种方法
s=String.valueOf(i);

String —> int

String s="12345";
int i;
//第一种方法
i=Integer.parseInt(s);
//第二种方法
i=Integer.valueOf(s).intValue();

String <—> byte

String s = "fs123fdsa";//String变量
byte b[] = s.getBytes();//String转换为byte[]
String t = new String(b);//bytep[]转换为String

String 转成Double二维数组

1.先将花括号替换成中括号,

2.使用JSON的转化,先转成String的二维数组

3.然后才是把数组中的值转成Double的

使用的JSON包是fastjson的

String str = "{{10.14, 11.24, 44.55, 41.01},{12.10, 14.21, 52.14, 50.44},{14.44, 16.12, 45.42, 47.55}}";
str = str.replace("{", "[").replace("}", "]");
String[][] arr = JSON.parseObject(str, String[][].class);
Double[][] ds = new Double[arr.length][arr[0].length];
for(int j=0;j<arr.length;j++){for(int i=0;i<arr[0].length;i++){ds[j][i] = Double.valueOf(arr[j][i]);}
}

String切割并返回list(工具 Guava)

import com.alibaba.fastjson.JSON;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.google.common.base.Splitter;List<String> list = Lists.newArrayList("a","b","c"," ");
String s = Joiner.on(",").join(list); // 以逗号分割Splitter split = Splitter.on(',').trimResults().omitEmptyStrings(); // 去前后空格&&去空string
List<String> list1 = split.splitToList(s);

其他类型转换String

1、toString()

先看API 中关于 toString()的描述:

返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())

toString()方法返回的是这个对象的字符串表示,就像是这个对象的名字一样,任何对象都可以有自己的名字,你可以重写其toString()方法,给其赋予任意的名字。

但是调用toString()方法的对象不能为 null,否则会抛出异常:java.lang.NullPointerException。

2、String.valueOf()

源码:

    public static String valueOf(Object obj) {return (obj == null) ? "null" : obj.toString();}

调用 toString() 之前判断一下这个对象是不是null,如果不是null,则正常调用其toString()方法,如果是null 的话,则返回字符串形式的null。

String.valueOf() 比起直接用 toString() 来说虽然可能会减少报错的机会,但是如果在对比对象值的时候可要小心,要注意如果用if(String.valueOf(object)==null) 就肯定不行的了。

3、强制转换 (String)data

这个是初学者最容易出错的,其实每个对象的类型在对象创建的时候已经确定并且不能更改,所谓强制转换也只是使其表面上换成了另一种类型,可以使用其方法对这个对象进行处理。那么可想而知,把物品A 当成物品B 来使用,当A 能能够被当成 B的时候大家都相安无事,你走你的路,我过我的桥,一旦A 不能被当成B ,它不会去自动调用 toString()方法,而是马上就会报错。

例一:

Integer obj1 = new Integer(100);
String strVal = (String)obj1;  //Cannot cast from Integer to String

因为obj1 在创建的时候就是 Integer 类型,不能转换成 String 类型,所以在编译期间就会报错Cannot cast from Integer to String。

例二:

Object obj2 = new Integer(100);
String strVal = (String)obj2;

obj2 虽然本质上是 Integer 类型,但其表面上确是 Object 类型,所以在编译的时候没有报错,但因为 obj2 在创建的时候已经确定了其在本质上 Integer 类型,所以这两行代码在运行时依然会报错,因为 Integer 型不能转换成 String 类型。

当然,如果要把 Integer 型转换成 String,可以调用其 toString()方法:Integer.toString(obj1) 或者 String.valueOf(obj1); 对应于其他自定义类型,则调用自己重写的 toString() 方法。

此外,因null值可以被强制转换为任何类型,所以(String)null也是合法的。

参考资料:https://www.cnblogs.com/yuxiaoqi/p/3562161.html

String对象初始化

创建并初始化最常见的方式有两种:

a、String str=new String("XXX"); 前者是java中标准的对象创建方式,其创建的对象将直接放置到堆中,每调用一次就会创建一个新的对象;

b、String str="XXX";   后者则会在栈中创建一个对象引用变量str,然后 查看字符串池中是否存在"XXX",如果没有,则将"XXX"存放字符串池,并令引用变量str指向它;如果已经有"XXX",则直接令str指向它。

字符串是否相等且不区分大小写-equalsIgnoreCase

字符串拼接

StringBuilder(效率高,非线程安全)StringBuffer(线程安全)

字符串补零

public static void main(String[] args) { int youNumber = 1; // 0 代表前面补充0 // 4 代表长度为4 // d 代表参数为正数型 String str = String.format("%04d", youNumber); System.out.println(str); // 0001
}

字符串基本操作

常用api

参考:https://blog.csdn.net/crazy_kid_hnf/article/details/55102861

String字符串中包含某个字段

参考:https://blog.csdn.net/c_staunch/article/details/82706017

正则表达式

参考:https://blog.csdn.net/juzixiansheng/article/details/87867118

https://blog.csdn.net/qq_19865749/article/details/77478489

https://blog.csdn.net/demon7552003/article/details/94882225

java基础之String类型相关推荐

  1. Java基础:String类

    相关阅读 Java基础:String类 Java字符串格式化 Java基础:正则表达式 1. 概述 字符串是由多个字符组成的一串数据(字符序列),字符串可以看成是字符数组. 在实际开发中,字符串的操作 ...

  2. Java基础之String,StringBuilder,StringBuffer三者的区别

    Java基础之String,StringBuilder,StringBuffer三者的区别 目录 运行速度方面 线程安全方面 小结 1. 运行速度方面 运行速度,在这方面运行速度快慢为:StringB ...

  3. Java基础笔记 – 枚举类型的使用介绍和静态导入

    Java基础笔记 – 枚举类型的使用介绍和静态导入 本文由 arthinking 发表于404 天前 ⁄ Java基础 ⁄ 暂无评论 ⁄ 被围观 1,433 views+ 1.枚举(Enum): JD ...

  4. java成员变量默认是_在Java语言中,String类型的成员变量的默认初始值是( )

    在Java语言中,String类型的成员变量的默认初始值是( ) 答:C.null 学生最主要的权利是() 答:受教育权 提倡教育要适合孩子的 "敏感期"的教育家是 答:蒙台梭利 ...

  5. Java基础之String深入解析

    Java基础之String深入解析 以下是本文目录大纲 生成地方和地址指向,intern()方法 String可否被继承? 1. 生成地方和地址指向,intern()方法 先看代码 String s1 ...

  6. Java中关于String类型的10个问题

    转载自   Java中关于String类型的10个问题 1. 如何比较两个字符串?用"="还是equals 简单来说,"=="是用来检测俩引用是不是指向内存中的 ...

  7. Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?...

    <Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?> <Java中的值传递和引用传递> 原理知识: 如果参数类型是原始类型,那么传过来的就是这 ...

  8. bytes数组转string指定编码_好程序员Java学习路线分享Java基础之string

    好程序员Java学习路线分享Java基础之string 好程序员Java培训 先来讲一下字符串 字串符分类: 不可变字符串:----String.字符串本身不能发生改变,与指向字符串的引用无关. St ...

  9. string类转数组 java_将java中的 string 类型转成 数组案例

    这个要看你的具体需求了.如果是有分隔符的那种例如"a,b,c";就直接分割就行了. String string = "a,b,c"; String [] str ...

  10. C++基础之string类型

    C++基础之string类型 string 类型支持长度可变的字符串,C++ 标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作.标准库 string 类型的目的就是满足对字符串的一般应用. ...

最新文章

  1. 程序猿修仙之路--算法之直接插入排序
  2. mongo数据库插入数据_深入研究Mongo数据库
  3. linux popen管道,linux进程通信之标准流管道popen
  4. 双轨制直销软件功能介绍
  5. Oracle EBS FSG报表输出记录追溯出错
  6. 完蛋,公司被一条 update 语句干趴了!
  7. Auto.js 简单悬浮开关
  8. 百度携手华为麒麟深度合作,李彦宏现场被泼水称AI发展总有曲折 | 百度开发者大会
  9. 我读《格鲁夫给经理人的第一课》
  10. 太极图正确画法_道教知识:太极图的正确画法
  11. scss 转换成css,如何将scss转换为css
  12. IDEA中MyBatis Migrations Maven plugin 使用总结
  13. 从零开始SpringCloud Alibaba实战(32)——spring-cloud-starter-oauth2认证授权服务
  14. Git 提交代码单词
  15. 信息技术课python培训心得
  16. 《CS信息系统建设和能力服务评估体系》资质的申请条件和流程
  17. 陀螺产业区块链第四季 | 基于区块链的跨行区块链福费廷交易平台
  18. 408数据结构考研笔记——第五章树与二叉树(重点)
  19. 多个京东商品链接里的图片素材一键下载
  20. 综合架构网站服务概念原理/部署安装(三)

热门文章

  1. 又一个程序员,被抓捕!(真实事件)
  2. Node.js 网页瘸腿稍强点爬虫再体验
  3. android画布橡皮,Android 橡皮擦功能的实现
  4. 对于一个类似VBF文件中有ASCII+二进制俩种编码方式的文件的读取
  5. python中哈希是什么意思_利用Python如何生成hash值示例详解
  6. 深度学习【23】图像风格化总结
  7. 湖南师范大学2018年大学生程序设计竞赛新生赛 F-小名的回答
  8. 哪种销售方式更能深入人心?
  9. 乐视贾跃亭任酷派集团执行董事 成酷派第二股东
  10. linux怎样压缩文件夹加密文件,linux下文件加密压缩和解压的方法