java关于字符串的常用API
作者:渡过晚枫 发布时间:2022-09-13 22:19:03
前言
所谓的字符串其实就是一串连续的字符,它是由许多单个字符连接而成的。如多个英文字母所组成的一个英文单词。字符串中可以包含任意字符,这些字符必须包含在一对双引号之内,例如“Dufeng”。
而与字符串相关的类都放在java.lang包中,故也不需要“导包”。
其主要分为两大类:
①:String类——创建后不能再修改和变动的字符串常量。
②:StringBuffer类——创建后可以再修改和变动的字符串变量
(此外还有用于分割字符串的StringTokenizer类在本节当中也会提到)
虽然StringBuffter类也用来代表字符串,但其在实际处理过程中,不会产生新的对象 ,所以在内存的使用量上是比String类更有优势的。
StringBuffer类的作用更偏向于对字符串进行插入、追加和删除等。
二者的属于不同的类型,所以不能直接进行强制类型转换。
一、String类
String是字符串常量。主要用于处理那些内容不会改变的字符串,String对象在进行字符串处理时,会产生新的对象而不是改变原有的值。且String对象可以通过操作符"+"进行连接。
在操作String类之前,我们需用用以下两种方式对其进行初始化。
①:使用字符串常量直接初始化String对象
String str="Hello Dufeng";
②:使用String的构造方法初始化String对象
String str = new String("Hello Dufeng");
String类的构造方法如下所示:
二、StringBuffter类
由于字符串是常量,因此一旦创建,其内容和长度是不可改变的。如果需要对一个字符串进行修改,则只能创建新的字符串。为了便于对字符串进行修改,在JDK中提供了一个StringBuffer类(也称字符串缓冲区)。
StringBuffter对象在每次修改时都会改变自身,其内容和长度都是可以改变的,这是与String对象最大的区别,而它的初始化也与后者不同,Java为其提供了特殊的语法,通常使用构造方法初始化。
三、StringTokenizer类
在一些算法题中,我们时常需要将字符串按字符输出或者输出字符串中的字符个数。
这时我们就可以使用StringTokenizer类了,利用分隔符进行操作,
java中默认的分隔符是空格、制表符(\t)、换行符(\n)、回车符(\r)。
其有三种构造方法:
下面是一个案例,计算字符串中的单词个数。
关键的在于单词之间的分隔符,每当有分隔符出现,就代表有一个新的单词,故可以利用StringTokenizer对象分析字符串,并利用分隔符对其进行分割。
public static void main(String[] args) {
String str="Hello,World!";
System.out.println("单词的个数为:"+Count(str));
}
static int Count(String str){
StringTokenizer tk= new StringTokenizer(str,",!");
int n=0;
while(tk.hasMoreTokens()){
tk.nextToken();
n++;
}
return n;
}
来源:https://blog.csdn.net/DuFengYa/article/details/130250473


猜你喜欢
- Android中对组合模式的应用,可谓是泛滥成粥,随处可见,那就是View和ViewGroup类的使用。在android UI设计,几乎所有
- 近期做简单的新闻客户端界面使用到了Jsoup获取,使用起来特别方便,这也是被我一个学长称为学android网络必学的一个东西,在此也是分享一
- session对象用于在会话范围内,记录每个客户端的访问状态,以便于跟踪每个客户端的操作状态,在会话存储的信息,在浏览器发出后续请求时可以获
- 之前不怎么了解这个,一直以为做起来很复杂。 直到前两天公司要求要做这个功能。 做了之后才发现 这不过就是一个POST请求就能实现的东西。现在
- 背景:以前学的Java进行开发,多用到Mybatis,Hiberante等ORM框架,最近需要上手一个C#的项目,由于不是特别难,也不想再去
- 本文实例讲述了Android编程使用Service实现Notification定时发送功能。分享给大家供大家参考,具体如下:/** * 通过
- 赛马下周一就要去做java实验了,还记得上一次实验还有一个程序没写完,匆匆交了实验报告的半成品(希望老师没发现www)。为了下周一能有更充裕
- 一、前言拖拽(Drag&Drop),属于是极其常用的基础功能。无论是在系统上、应用上、还是在网页上,拖拽随处可见。同时拖拽时的鼠标效
- 前言本节将介绍如何设置和使用MongoDB 驱动程序,通过 java实现与MongoDB服务端的通信功能,用户可以在此基础上进行各种Java
- 本文实例讲述了C#编程实现四舍五入、向上及下取整的方法。分享给大家供大家参考,具体如下:在处理一些数据时,我们希望能用“四舍五入”法实现,但
- JSON数据格式简洁,用于数据的持久化和对象传输很实用。最近在做一个Razor代码生成器,需要把数据库的表和列的信息修改后保存下来,想到用J
- 微信开发API如何接入服务器,下面就为大家进行介绍一、说明* 本示例根据微信开发文档:http://mp.weixin.qq.com/wik
- 工厂模式定义:提供创建对象的接口。为何使用工厂模式工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java
- 换了工作要把Java重新捡起来了,这个在大学里用过的语言,虽然不复杂,还是有一些奇怪的地方的。比如static import。Static
- 本文以新建的CUDA的.cu程序来进行说明,同样也适用于C程序。一,发现问题1,首先我们在vs2019中创建了工程以后(我所创建的工程名称为
- * 缓存内存缓存本地缓存(SD卡缓存)网络缓存缓存顺序:首先从网络获取图片资源,然后将当前的图片缓存到本地,然后再缓存到内存中,那么下次访问
- 一、音乐播放器的实现原理 Javase的多媒体功能很弱,所以有一个专门处理多媒体的插件叫JMF,JMF提供的模型可大致分为七类*
- 本文实例演示了Java多线程死锁。分享给大家供大家参考,具体如下:package com.damlab.fz;public class De
- Android的硬件抽象层,简
- 如果我们的程序是在单线程下运行,或者是不必考虑到线程同步问题,我们应该优先使用StringBuilder类;如果要保证线程安全,自然是Str