java系统学习(四) --------java字符串的处理
来源:互联网 发布:猎巫运动知乎 编辑:程序博客网 时间:2024/04/29 01:11
字符串是java中的类,它不是基本的数据类型。使用方法像一般的基本数据类型。
字符串处理的类库种类
java中使用最多的字符串处理的类 分别是 String 和 StringBuffer
处理一些小的文本,建议使用String,它比较方便。
如果使用String类来处理大型文本,会很消耗资源,所以java引进了 StringBuffer
下面分别记录 两种类型的使用
String
构造器
默认构造器
String() 这个构造器是最简单的构造器 也是系统默认的构造器,是不带参数的。
用法
String str= new String();System.out.println(str);
这里输出了一个空字符串。因为只初始化,没赋值。
字节参数的构造器
String(byte[] byte) 将字节数组中的元素作为字符串对象。
用法
byte[] b={97,98,99}//通过构造器,将字节数组中的元素连接成一个字符串String str=new String(b);System.out.println(str);结果:
abc
因为字节 97 98 99分别对应字母 abc
获取指定字节数的构造器
String(byte[] bytes,int offset,int length) 将字节数组中,从offset指定的位置开始,到 length长度结束。中间的字符构成字符串对象。
用法
byte[] b={97,98,99,100,101,102};//通过构造器,将字节数组中的元素连接成一个字符串,并且从第4个位置开始,取2个元素String str=new String(b,3,2);System.out.println(str);结果:
de
因为字节 100 101 分别对应字母d e
将字节型数据转换为字符集输出的构造器
String(byte[] bytes,int offset,int length,String charsetName)
这个构造器的含义就是将一个字节数组中从第offset个位置的字符开始,length长度的字符结束,中间的字符形成字符串对象,然后将这个字符串按照某种字符集样式输出。
字符集一般有 us-ascii iso-8859-I utf-8 utf-16be utf-16le utf-16等样式
用法
byte[] b ={97,98,99,100,101,102};String str =new String(b,3,2,"utf-8");//将此字符串以utf-8的形式输出System.out.println(str);
结果:
de
字符数组的构造器
String(char[] value)构造一个字符数组
用法
char[] c={'w','e','l','c','o','m','e'};//通过构造器,将字符数组中的元素链接成一个字符串Sring str=new String(c);Syetem.out.println(str);
结果:
welcome
截取部分字符串数组内容的构造器
String(char[] value,int offset,int count) 这个构造器的含义是 将字符数组中从offset指定的位置开始 count指定的数目结束,中间的字符连成字符串。
用法
char[] c={'w','e','l','c','o','m','e'};//通过构造器,将字符数组中的元素链接成一个字符串,并且从第4个位置开始,取4个元素Sring str=new String(c,3,4);Syetem.out.println(str)
结果:
come
字符串的处理方法
串连接
两种方法
一个是用+ 号
另一个是 用 contact(String str)方法
+号连接
String str1="welcome";String str2="you";System.out.println(str1+str2);
结果:
welcome you
contact连接
用法
String str1="welcome";String str2="you";System.out.println(str1.contact(str2))
结果:
welcome you
提取字符串
有时一个很长的字符串,其中只有一小部分是需要的,于是Java语言类库中就提供了相
应的获取局部字符串的方法。方法是:"substring(int beginIndex, int endlndex)"或
substring(int index)"。下面将详细地讲述这两个方法的意义和使用方法。
substring(int index)
"substring(int index)”是指提取从index指定的位置开始,一直到字符串的最后。
用法
//初始化一个字符串strString str="we are students and he is worker”;//提取从字符串的第3个元素开始到第1。个元素位置的字符串,//并且将其输出System.out.println(str.substring(2,10));结果:
are stu
substring(int beginlndex, int endlndex)
"substring(int beginlndex, int endlndex)”是指提取由“beginIndex”位置开始,以 "endIndex”为结束位置的字符串。用法
//初始化一个字符串strString str="we are students and he is worker”;//提取从字符串的第3个元素开始到第1。个元素位置的字符串,//并且将其输出System.out.println(str.substring(3));
结果:
are students and he is worker
从字符串中分解字符
用法
//从字符串中的第2个位置将字符提取出来String str="we are students and he is a worker";Spstem.out.println(str.charAt(1));//获取第2个位置的字件
结果
e
得到字符串的长度
在学习数组时,学到过数组长度,而在这里也要讲到字符串的长度。字符串长度使用方法"length()”获取。
用法
String str="we are students and he is a worker”;System.out.println(str.length());//输出字符串的长度结果:
34
测试字符串是否相等
equals
在实际程序月几发中,经常会出现一些比较字符串的程序模块,通过比较字符串是否相等,来实现某个要求。例如,通过比较两个字符串是否相等,来确认密码和用户名是否正确,从而判断是否可以登录系统。这个在系统登录界面中经常遇到。测试字符串是否相等的方法是"equals(String str)"。用法
//声明两个字符串对象str和strlString str="administrator";String strl="administrator";if (str.equals(strl)) {//如果相同则输出’‘密码正确,请登录系统” System.out.println('’密码正确,请登录系统”);}else{//否则输出‘’密码不正确,请重新输入密码” System.ou七.println(”密码不正确请重新输入密码”》;)结果:
密码正确,请登录系统
equalsIgnoreCase
在现实程序开发中,有的登录系统对十输入密码的大小写忽略。此时在Java语言中也有一
个方法就是“equalsIgnoreCase(String str)",这个方法忽略字符串大小写。
用法
//声明两个字符串对象str和strlString str="Administrator";String strl="administrator";if (str.<span style="font-size: 18px;">equalsIgnoreCase</span>(strl)) {//如果相同则输出’‘密码正确,请登录系统” System.out.println('’密码正确,请登录系统”);}else{//否则输出‘’密码不正确,请重新输入密码” System.ou七.println(”密码不正确请重新输入密码”》;)结果:
密码正确,请登录系统
查找特定子串
在程序开发的过程中,有的系统提供查找j-.系统,用于查找自己需要的内容。java提供了查找特定子串的功能,可以帮助查找自己需要的升字符串。
查找字符串子串有三个方法:
"indexOf(子串内容)”方法是帮助查找子串,如果返回的是负数,就表示在当前字符串中没有找到所查找的子串。
"startsWith(子串内容)”方法测试当前宇符串是否以子串开始。
"endsWith(子串内容)”方法测试当前字符串是否以子串内容为结尾。
用法
//定义字符串对象StrString str=”是一个很优秀的程序员”;//通过indexOf方法来查找字符串中的元素位置System.out.println(str.iadezOf("个"));//通过endswith来查找当前元素是否是字符串的结尾System.out.printla(str.endsWith("员"));//通过startsWith来查找当前元素是否是字符串的开头System.out.println(str.startsWith(”明”));结果:
2
true
false
从基本类型转换成字符串
使用“valueOf()”将基本类型的数据转换成相应的字符串。或者 toString()缓冲字符串处理类—StringBuffer
前面介绍过,"String”类声明初始化后,是固定不变的。如果要改变它,就必须重新申清空间,重新声明和初始化。Java类库中有一个类,可以解决上面的问题,那就是缓冲’全符串类—"StringBuffer”类。当创建StringBuffer类对象时,系统为对象分配的内存会自动扩展,以容纳新增的内容。针对“StringBuffer”类创建对象时的构造器有两个,下面将详细地讲述。
缓冲字符串StringBuffer类的构造器
默认的构造器
用法
StringHuffer sb=new StringBuffer();
设定容量大小的构造器
StringBuffer sb=new StringBuffer(int x)
扩充容量
用法
System.out.println(sb.capacity());System.out.println(sb. easureCapacity(100))System.out.println(sb.capacity());//输出字符串的容量capacity//扩充容量//输出宇符串的容量capacity
缓冲字符串处理的方法
连接字符串
用法
//构造一个缓冲字符串类的对象sbStringBuffer sb=new StriagBuffer('’小明是一个优秀”);//通过append方法,在这个对象后面添加一个新字符串sb.append(”的程序员”)System.out.println(sb);//输出字符串对象结果:
小明是一个优秀的程序员
取字符串的单个字符
charAt()方法返回字符串中的单个字符。
用法
//构造一个缓冲字符串类对象sbStringBuffer sb=new StringBuffer("小明是一个优秀");//返回指定位置的字符System.out.println(sb.charAt(3));
结果:
一
单个字符串赋值
setCharAt()方法对字符串中的单个字符赋值或进行替换。用法
//构造一个缓冲字符串类对象sbStringBuffer sb=new StringBuffer('‘小明是一个优秀程序员")//将指定位置的元素替换成新的字符sb.setCharAt(0,'张');System.out.println(sb);//输出字符串结果:
张明是一个优秀程序员
指定位置插入字符串
insert()方法在字符串指定位置插入值用法
//构造一个缓冲字符串类对象sbStringBuffer sb=new StringBuffer("我是一个优秀");//使用insert方法将新字符串插入到指定的位置sb.insert(6,'的程序员');System.out.println(sb);//输出字符串结果:
我是一个优秀的程序员
返回字符串的子串
substring()方法用干返回字符串的一个子串。用法
//构造一个缓冲字符串类对象StringBuffer sb=new StringBuffer(”我是一个程序员”)//使用substring方法返回指定位置开始到结束位置的子串System.out.println(sb.substring(2));结果:
一个程序员
倒置字符串的内容
reverse()方法用来倒置“StrineBuffer'的内容用法
//构造一个缓冲字符串类对象StringBUffer sb=new StringBuffer(”我是一个程序员”);System.out.println(sb.reverse());//将字符串倒置后输出结果:
员序程个一是我
疑难问答
“equals”与 “== ”的区别
1.
==是判断两个变量或实例是不是指向同一个内存空间
equals是判断两个变量或实例所指向的内存空间的值是不是相同
2.
==是指对内存地址进行比较
equals()是对字符串的内容进行比较
3.
==指引用是否相同
equals()指的是值是否相同
- java系统学习(四) --------java字符串的处理
- Java学习:Java字符串处理
- Java 字符串的 处理
- Java 字符串的处理
- Java字符串的处理
- Java学习笔记3:Java编程中字符串的处理
- Java学习之路0717(四)(数组、字符串)
- Java练习题(字符串的处理)
- JAVA学习笔记整理四(异常处理)
- java日期处理(四)
- (四)Java异常处理
- java学习之day09--关于字符串的处理
- JNI学习(四)、本地方法创建java对象,以及对字符串的操作
- Java学习(四)
- Java学习(四)
- JAVA学习(四)
- java系统学习(十三) --------java中对数据的处理
- Java奇怪的字符串处理
- 加载大图,解决oom问题
- 男人和小姨子看到一辆豪华的进口轿车,小姨子竟然说……
- tomcat的work目录的作用
- SQLite组合主键设置外键以及出现外键匹配出错System.Data.SQLite.SQLiteException (0x80004005) SQL logic error or missing d
- Javascript实现幻灯片效果
- java系统学习(四) --------java字符串的处理
- CVPR2015深度学习回顾
- Codeforces Round #317 [AimFund Thanks-Round] (Div. 2) C(组合数+容斥)
- UVA 1584 Circular Sequence
- Redis详细,config配置,win和linux下怎么玩,和mysql数据同步。
- android color.xml
- Algorithms—268.Missing Number
- 2种基于异常机制的反调试方法
- [LeedCode OJ]#169 Majority Element