Thinking in Java--第十三章-字符串

写在前面:

要做的事太多了,写的blog不是很细。会写自己觉得好玩的、重要的地方。希望大家来尽情的讨论,分享自己的见解。让“思维的火花的碰撞”得以实现。



几乎每一种操作都会涉及到字符串,所以字符串特别重要。

13.1 不可变String

String类中看起来会修改String值得方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容,而最初的String对象丝毫未动。



13.2 + 与 StringBuilder

StringBuilder要快很多,有兴趣的话可以分别写两个用+和StringBuilder的方法测一下时间。也可以配置环境变量后用javap -c classname(类名称)看一下JVM的字节码是什么样子的。

有循环的时候就用StringBuilder就好了

另外!

append(/*一个字符串*/);

不要用类似这种

append(a + ":" + c);

这样编译器会调入陷阱,为你创建另外一个StringBuilder对象处理括号内的字符串操作。



13.3无意识的递归

System.out.println("String" + this);

这里,编译器看到一个String后面跟着一个+,其后面对象不是String,于是就会调用this的toString方法。那这个this.toString()方法可能也有this对象,于是就会一直递归下去。



13.4 String上的操作

自行google



13.5 格式化

就是一个formater类,举例

System.out.format("%d", x);

跟C很像



13.6 正则表达式

一种高效匹配字符串的方法。以后每天都会来分享几种



13.7 扫描输入

处理输入,把输入的数据分析出来

最好是用Scanner或者是正则表达式来分析扫描



13.8分割字符串

StringTokenizer

因为有了上面的两种,它已经被遗忘了==

时间: 2024-10-12 21:07:56

Thinking in Java--第十三章-字符串的相关文章

Java编程思想第四版读书笔记——第十三章 字符串

Java编程思想第四版读书笔记--第十三章 字符串 字符串的操作是计算机程序设计中最常见的行为. 关键词: StringBuilder ,StringBuffer,toString(),format转换,正则表达式, 1.不可变String String对象时不可变的.每当把String对象作为方法的参数时,都会复制一份引用.(其实就是对函数中参数列表中参数的操作不会影响外面的原参数) 如下: import static net.mindview.util.Print.*; public cla

“全栈2019”Java第九十三章:内部类应用场景(迭代器设计模式)

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第九十三章:内部类应用场景(迭代器设计模式) 下一章 "全栈2019"Java第九十四章:局部内部类详解 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习

《Java编程思想》第十三章 字符串

<Java编程思想>读书笔记 1.String作为方法的参数时,会复制一份引用,而该引用所指的对象其实一直待在单一的物理位置,从未动过. 2.显式地创建StringBuilder允许预先为他指定大小.如果知道字符串多长,可以预先指定StringBuilder的大小避免多次重新分配的冲突. 1 /** 2 * @author zlz099: 3 * @version 创建时间:2017年9月1日 下午4:03:59 4 */ 5 public class UsingStringBuilder {

《JAVA编程思想》学习笔记——第十三章 字符串

String对象是不可变的.查看JDk文档你就会发现,String类每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,以包含修改后的字符串内容.而最初的String对象则丝毫未动. +和StringBuilder StringBuilder比+更高效 String常用操作 正则表达式 略

[think in java]第13章 字符串

不可变String String对象是不可变的.String类中没一个看起来会修改String值的方法,实际上是创建了一个全新的String对象. 重载 "+"与StringBuilder java为String对象重载了"+"操作符.如:String test = "abc" + "def" + "gh"; 根据上面我们提到的,String是不可变的,java会先生成一个String对象来链接"

Java编程思想之字符串

来自:Java编程思想(第四版) 第十三章 字符串 ? 字符串操作是计算机程序中最常见的行为. ? String对象是不可变的.查看JDK文档你就会发现,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String对象,已包含修改后的字符串内容.而最初的String对象则丝毫未动. ? 不可变性会带来一定的效率问题.为String对象重载的"+"操作符就是一个例子.用于String的"+"与"+="是Java中仅

Gradle 1.12用户指南翻译——第二十三章. Java 插件

其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/userguide/userguide.html. 另外,Android 手机用户可通过我写的一个程序浏览文档,带缓存功能的,兼容

《Java从入门到精通》第十三章学习笔记

第十三章 Swing程序设计 一.Swing概述 Swing是GUI(图形用户界面Graphic User Interface)开发工具包,在AWT(抽象窗口工具 Abstract Windows Tool)的基础上使开发跨平台的Java应用程序界面成为可能.使用Swing开发的Java程序,其界面是不受本地系统平台限制的. 二.Swing常用窗体 1.JFrame框架窗体 JFrame窗体是一个容器,它是Swing程序中各个组建的载体,可以通过继承java,swing.JFrame类创建一个窗

Java学习笔记—第九章 字符串String

第九章 字符串String Java中使用String类来创建一个字符串变量,字符串变量是类类型变量,是一个对象.声明字符串的语法格式如下:String s; 创建字符串:通过String类提供的构造方法可创建字符串,有以下几种方式: (1)创建字符串对象时直接赋值,例如: String s1 = "hello"; String s2 = new String("hello"); (2)由一个字符串创建另一个字符串,例如: String s1 = "hel