专栏首页石头岛几个 String 的知识点

几个 String 的知识点

String 类

不可变字符对象。 所以每次String对象的改变实际是创建了一个新对象。 String 是 final 的也不能被继承。

String test1 = new String("ABCD");
String test2 = "ABCD";	//通过字符串常量创建一个String对象。
String test3 = "ABCD";
test3 += "EFGH";	     //创建了一个新的String对象。
StringBuilder test4 = new StringBuilder(test3);

System.out.println(test1==test2);
System.out.println(test1.equals(test2));

由于String每次相加时都是创建一个新对象,所以尽量避免创建大是的String对象。比如:

for (int i = 0; i < 1000; i++) {
	test1 += test1;
}

如果非得用这种方式的话,尽量用StringBuild来创建。

for (int i = 0; i < 1000; i++) {
	test4.append("xxxx");
}

防乱码处现

如果IO流中有泛及到中文,那肯定有乱码问题。处现方式:

if("teachername".equals(fileItem.getFieldName())){
		String value = fileItem.getString();
		teacherName = new String(value.getBytes("ISO-8859-1"),"UTF-8");
}

空窜注意

在使用split切割后判断字符串空串时,要注意,” “一个空格不能用一个空格” “来判断,而是用”” 无任何空格的空串来进行判断才能成功。便是单个string判断空串确没有问题???

String str = "aa bb   ccc       ddd";
		String[] newStr = str.split(" ");
		System.out.println(Arrays.toString(newStr));
		for(String str2 : newStr){
			if(!"".equals(str2)){
				System.out.println(str2);
			}
}
结果:
[aa, bb, , , ccc, , , , , , , ddd]
aa
bb
ccc
ddd

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 字符串匹配算法基础版

    小谭一边心里犯嘀咕,这还能有啥原理,直接用不就行了,管那么多干啥,一边对大猫说,今天又想要吃啥面了。

    谭小谭
  • 学 Guava 发现:不可变特性与防御性编程

    问:String 类是可变的吗? 答:emm……由于String类的底层是 final 关键字修饰,因此它是不可变的。 问:它被设计为不可变的好处有哪些呢? 答...

    周三不加班
  • mysql索引为啥要选择B+树 (下)

    有读者在 mysql索引为啥要选择B+树 (上) 上篇文章中留言总结了选择 B+ 树的原因,大体上说对了,今天我们再一起来看看具体的原因。

    谭小谭
  • 学UI时卡在了动效这关?看谷歌设计师如何为你出招!

    编者按:UI中动效设计本没有那么玄乎,作为 Google 旗下 Material Design 团队中动效设计的负责人之一,Jonas Naimark 对于动效...

    用户5009027
  • 什么样的对象需要被 GC ?

    上一篇文章 JVM 基本介绍 我们了解了一些基本的 JVM 知识,本篇开始逐步学习垃圾回收,我们都知道既然叫垃圾回收,那回收的就应该是垃圾,可是我们怎么知道哪些...

    周三不加班
  • 菜鸟的进阶之路:Java集合框架

    在java.util 包里,包含了 Collection、List、Set、Map、SortedMap 等接口这些接口的实现类有 LinkedList、Tree...

    乱敲代码
  • 一文快速了解Java集合框架

    JDK1.2 引入了 Java 集合框架,包含一组数据结构。与数组不同,这些数据结构的存储空间会随着元素添加动态增加。其中,一些支持添加重复元素另一些不支持,一...

    乱敲代码
  • 如何让mysql索引更快一点

    在 InnoDB 中,从二级索引回到主键索引查询数据,这个过程称作回表过程,而且这个回表过程是可以被优化的,这个优化就是利用覆盖索引。

    谭小谭
  • 数组中重复的数

    先给数组排序,然后再遍历一遍有序数组,依次比较相邻元素,就很容易能找出数组中重复的值。使用快排排序的话时间复杂度为 O(nlogn) 。

    谭小谭
  • 你真的会写JAVA的单例模式吗?

    单例模式可能是代码最少的模式了,但是少不一定意味着简单,想要用好、用对单例模式,还真得费一番脑筋。本文对Java中常见的单例模式写法做了一个总结,如有错漏之处,...

    乱敲代码

扫码关注云+社区

领取腾讯云代金券