java笔记之String的应用

说来这String字符串也是运用广泛了,但是String的一些使用方法你是否能够了解清楚呢?

这是我这几天来整理的String笔记,其实这也是不全面的,要想深入了解,还得自己去oracle官网看JDK_API

1.我们要先了解在内存区中是如何保存字符串的.

如果创建字符串没有通过new对象的方式创建,name字符串是保存在字符串常量池(常量区),当你需要给一个字符串变量赋值的时候,先到常量池中查找,如果没有就在常量池中创建一个,并将地址赋值给字符串变量,如果有就不在创建,直接将地址给变量.

如果是new的对象字符串也是保存在字符串常量池(常量区),当你需要给一个字符串变量赋值的时候,先到字符串常量池中查找,

如果没有就在常量池创建一个,将值赋给堆中的对象,如果有就不创建,将值赋值给堆区中的对象

2.字符串的一些常用方法:

StringBuffer: 字符串缓存区 : 存在一个字符数组 默认会有一个大小 :16 ,如果超了就容器大小就翻一倍。* 类似oc中的可变字符串。 */

StringBuffer :存字符的容器

容器的功能 :
增加
append(); //在字符串的后面追加
insert(); //插入一个字符串。
删除
delete(int start, int end) // 删除某一段字符串。
deleteCharAt(int index) // 删除指定位置的字符串
修改
replace(int start, int end, String str) 根据指定 的开始与结束索引值替代成指定的内容。
reverse() 翻转字符串缓冲类的内容。 abc--->cba

setCharAt(int index, char ch) 把指定索引值的字符替换指定的字符。
substring(int start, int end) 根据指定的索引值截取子串。
ensureCapacity(int minimumCapacity) 指定StringBuffer内部的字符数组长度的。

查找
indexOf(String str, int fromIndex) 查找指定的字符串第一次出现的索引值,并且指定开始查找的位置。
lastIndexOf(String str)

capacity() 查看当前字符数组的长度。
length()

charAt(int index)
toString() 把字符串缓冲类的内容转成字符串返回。

1.先简单的使用一下StringBuffer
StringBuffer str = new StringBuffer();

-------------添加字符串的方法---------------------
str.append("字符串");
str.append("java"); //字符串的追加

插入字符串
offset:从某一个位置开始插入
str : 插入的数据类型
str.insert(3, "php");
System.out.println(str);

------------删除数据----------------
delete(int start, int end) // 删除某一段字符串。
deleteCharAt(int index) // 删除指定位置的字符串
str.delete(3, 4); //包含起始位置 但是不包含结束位置
System.out.println(str);
删除指定位置的字符串
str.deleteCharAt(0);
System.out.println(str);

------------修改的方法-------------------
start:起始位置
end : 结束的位置
str : 替换的字符串
符串hpjava
str.replace(4, str.length(), "OC");
System.out.println(str);

翻转字符串
str.reverse();
System.out.println(str);

替换指定位置的字符
index :指定的位置
ch :替换的字符
COph串符
str.setCharAt(0, ‘O‘);
System.out.println(str);
截取字符串
str.substring(start); // 从某个位置开始截取
str.substring(start, end)//截取某一段字符串

-------------查找:
str.indexOf(str);// 查找指定的字符串在大的字符串中的位置。
indexOf(String str, int fromIndex) //从指定的位置开始找。
str.lastIndexOf(str) 查找最后一个
 str.lastIndexOf(str, fromIndex)//从指定的位置开始找
查看字符数组的长度
str.length();
str.capacity();

str.toString(); // 将String变为String
str.charAt(index); 查找指定位置的字符

StringBulider 和StringBulider的使用方式是一模一样
StringBuffer 和 StringBulider 区别:

相同点 :
1.都是字符缓冲类
2.两个类的方法一样
不同点:
1.StringBuffer线程更安全,操作效率低,StringBulider 线程不安全,效率高。
2.StringBuffer是jdk1.0就有的,StringBuliderjdk1.5才有。

推荐使用:StringBulider


时间: 2024-10-11 05:58:29

java笔记之String的应用的相关文章

5.7-全栈Java笔记:字符串String的常用方法

字符串String String基础 1)String位于java.lang包中,Java程序默认导入java.lang包. 2)ava字符串就是Unicode字符序列,例如串"Java"就是4个Unicode字符J.a.v.a组成的. 3)Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括起来的字符串都是String类的一个实例. [示例1]String类的实例 String e = ""  ; // 空字符串a

Java笔记之String

1. 1 String s="a",t="b"; 2 t.concat(s); 之后,t仍然是"b",而不是"ba",要使t是"ba"则 String s="a",t="b"; t=t.concat(s);

java 笔记 String 和Stringbuffer

String 是一个类,而不是java中的基本数据类型. String s = "abc";  "abc"是一个对象,存放在常量池中.一旦被初始化就不能被更改了. s = "cde";  这里并没有改变字符串,而是使对象引用指向字符串cde: String s1 = new String("abc"); String s2 = "abc"; 这两者有什么不同,第一个有两个对象,一个是"abc&qu

java笔记--String类对象解析与运用

1.String中的equals和==的区别 String是对象而非基本数据类型,不能使用"=="来判断两个字符串是否相当, 判断两个字符串内容是否相同用equals(); 判断两个字符串内存地址是否相同用"==" 2.startsWith(String str): 判断字符串是否以str为前缀 3.endsWith(String str): 判断字符串是否以str为后缀 4.String 字符串的比较: 1).compareTo()和compareToIgnore

java笔记--String类格式化当天日期转换符文档

String类格式化当天日期 转换符:%tb : 格式化为月份的英文缩写%tB : 格式化为月份的英文全写%ta : 格式化为星期%tA : 格式化为星期%ty : 格式化为两位年份值%tY : 格式化为四位年份值%tm : 格式化为两位月份值%td : 格式化为两位日期值%te : 格式化为星期一位日期值%tH : 格式化为两位24时制小时值(00-23)%tk : 格式化为两位24时制小时值(0-23)%tI : 格式化为两位12时制小时值(01-12)%tl : 格式化为两位12时制小时值

13.1-全栈Java笔记:打飞机游戏实战项目|AWT技术|MyGameFrame

简介和项目目标 通过游戏项目学习整个Java基础知识体系,我们做了精心的设计,让每一章知识都能获得应用. 比如:多线程用来实现动画效果.容器实现对于多发炮弹的存取和处理.常用类等等的应用. 寓教于乐,让大家迅速入门,更希望通过喜闻乐见的小游戏,让大家爱上编程,爱上"程序员". 老鸟建议 很多朋友会疑惑:"游戏项目,又不能拿到企业面试中,为什么要讲?" 这是一种太过于功利的想法.就像,我们说:"今天吃个馒头,又不是长高,为什么要吃呢?" 游戏项目的

JAVA 笔记 七

JAVA笔记七 this:就代表本类的对象,this代表它所在函数所属对象的引用简单说:那个对象在调用this所在的函数,this就代表那个对象静态:static 用法:是一个修饰符,用于修饰成员(成员变量,成员函数)当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用.类名.静态成员static特点1.随着类的加载而加载2.优先于的对象存在3.被所有对象所共享4.可以直接被类名所调用实例变量和类变量的区别:1.存放位置. 类变量随着类的加载而存在与方法区中. 实例

14.5-全栈Java笔记:java.awt这些布局怎么写?|流式|边界|网格

布局管理器 读者会发现,如果使用坐标定位法(空布局),在一个比较复杂的界面上定位每个控件的坐标是一个非常麻烦的工作,而且在界面大小发生改变时,控件的绝对位置也不会随之发生改变.那么如果我们想让用户界面上的组件可以按照不同的方式进行排列怎么办?例如:可以依序水平排列,或者按网格方式进行排列等,其实每种排列方案都是指组件的一种"布局",要管理这些布局,就需要本节学习的布局管理器. 管理布局的类由java.awt包来提供,布局管理器是一组实现java.awt.LayoutManager接口的

13.3-全栈Java笔记:打飞机游戏实战项目|PaintThread|launchFrame

多线程和内部类实现动画效果 1)增加绘制窗口的线程类 前三个版本,我们步步为营,每个小版本都有功能的突破.但是,目前为止我们的窗口仍然是静态的,并没有像真正的游戏窗口那样"各种动.各种炫".本节我们结合多线程实现动画效果. 我们在MyGameFrame类中定义"重画窗口线程PaintThread类",为了方便使用MyGameFrame类的属性和方法,我们将PaintThread定义成内部类. [示例1]MyGameFrame类:增加PaintThread内部类 pu