网站首页 > java教程 正文
字符串是有限个字符的有序集合,前面讲的char类型用于表示和存储单个字符,字符串相当于几个或多个char类型的有序集合,用于表示和存储多个有序的字符序列。例如:“I want to learn Java programming”、“我要学Java编程”、“3+5=8”、“abc”等等。
四则运算器程序需要存储用户输入的计算表达式,计算表达式由多个字符组合而成,用前面所掌握的Java数据类型,不适合存储计算表达式。程序需要一个新的类型来存储计算表达式,这个新的类型就是字符串类型。
Java语言的字符串类型同前面介绍的Java基础类型不太一样,Java没有给字符串类型定义一个关键字,用于声明字符串类型,而是通过类的方式提供对字符串的操作和存储。在Java语言中,字符串类型被定义为类,类名为“String”,该类提供了多个构造方法和字符串操作方法,用于满足对字符串不同的处理要求。
String类的初始化
String类可用字符串常量对其初始化。例如:
也可以调用其构造方法来进行,String类提供了多个构造方法对其初始化,下面列举了几个主要的构造方法:
(1)方法名称:String()
方法说明:构造一个空串(不包含任何字符)
方法示例:String szWelcome = new String();
(2)方法名称:String(String original)
方法说明:用original内容初始化新创建的字符串
方法示例:
String szTemp = “欢迎加入编程小组”;
String szWelcome = new String(szTemp);
(3)方法名称:String(byte[] bytes))
方法说明:用字符数组(后面会讲解数组结构)始化新创建的字符串
方法示例:
char chTemp[] ={‘欢’,’迎’ ,’加’,’入’,’编’,’程’,’小’,’组’};
String szWelcome = new String(chTemp);
示例1:String类的初始化
在D盘Java目录下,新建“StringInitSample.java”文件。用记事本打开“StringInitSample.java”文件,输入以下代码:
代码结构分析
程序功能主要是演示String类声明及初始化的使用。
程序使用了String类提供的三种不同的初始化方法。第一种方法是通过字符常量赋值初始化;第二种方法是通过new运算符(后面会讲解)实例化String类,并以传入的已声明的字符串初始化;第三种方法是通过new运算符实例化String类,并以传入的字符型数组初始化。
编译“StringInitSample.java”文件,在命令行窗口输入“javac StringInitSample.java”并执行命令,编译通过后,在命令行窗口输入“java StringInitSample”运行Java程序,命令行窗口显示如下信息:
从上述结果可以看出,用相同的内容对String类进行不同的初始化,虽然初始化方法不太,但其内容是相同的。
String类的方法
String类提供了多个方法,用于完成对字符串查找、替换、比较、连接、复制、分割等操作。下面列举了几个主要的操作方法,其它方法请参考Java API:
(1)方法名称:charAt(int index)
方法说明:返回由索引号指定的单个字符,索引是单个字符在字符序列的位置,String类的序列号从0开始。
方法示例:
String szWelcome = “欢迎加入编程小组”;
//返回索引号为1的字符,当前应返回字符‘迎’
char chTemp = szWelcome. charAt(1);
(2)方法名称:length()
方法说明:获取字符串的长度,String包含的字符的个数。
方法示例:
String szWelcome = “欢迎加入编程小组”;
//返回字符串长度,当前返回数值8
int nLength = szWelcome. length()
(3)方法名称:indexOf(int ch)
方法说明:查找字符串是否包含ch字符,返回字符的整型数值。若包含返回索引号,否则返回-1。
方法示例:
String szWelcome = “欢迎加入编程小组”;
//查找字符’编’,当前返回4,索引号从0开始
int nIndex = szWelcome. indexOf((int)‘编’)
//或
char chTemp = ‘编’;
int nIndex = szWelcome. indexOf((int) chTemp)
备注:
该方法还可以支持传入字符串类型以及从指定位置开始查找,详情请参考Java API
(4)方法名称:equals(Object anObject)
方法说明:比较两个字符串内容是否相同,若内容相同返回true,否则返回false。传入的参数Object类抽象了Java的所有类,也包括String类,在这里可以认为是String类。关于类及类的抽象、继承后面会讲述。
方法示例:
String szWelcome1 = “欢迎加入编程小组”;
String szWelcome2 = “欢迎加入Java编程小组”;
//比较szWelcome1和szWelcome2的内容是否相同,当前返回false
boolean bEqual = szWelcome. Equals(szWelcome2);
示例2:String类的查找及比较操作
在D盘Java目录下,新建“StringFindSample.java”文件。用记事本打开“StringFindSample.java”文件,输入以下代码:
代码结构分析
程序功能主要是演示String类的查找、获取长度、比较操作。
程序声明了三个String类变量,其中,szWelcome1和szWelcome2赋予相同的值,用于内容比较操作。
语句“int nIndex = szWelcome1.indexOf('编');”,声明了一个整型变量,用于接收查找方法indexOf返回的索引号,并通过printf方法格式化输出。
语句“int nLength = szWelcome1.length();”,声明了一个整型变量,用于接收length方法返回的字符串长度,并通过printf方法格式化输出。
语句“boolean bEqual = szWelcome1.equals(szWelcome2);”,声明了一个boolean型变量,用于接收equals方法返回的布尔值,并通过printf方法格式化输出。
编译“StringFindSample.java”文件,在命令行窗口输入“javac StringFindSample.java”并执行命令,编译通过后,在命令行窗口输入“java StringFindSample”运行Java程序,命令行窗口显示如下信息:
从上述结果可以看出,String类的length返回字符串包含的字符个数,indexOf返回字符所在字符串的索引位置,索引从0开始,因此查找字符‘编’时,返回索引4。
就n在实际编程中,Java的String类是使用频率非常高的类,需要深入理解和掌握,弄清楚String提供的各种操作方法和技巧。四则运算器解析计算表达式时,可以通过String的length方法获取字符串长度,然后循环遍历表达式的每个字符,并应用equals方法判断是数字还是运算符,并做相应的处理。
猜你喜欢
- 2024-10-16 python字符串1_2(Python字符串转数字)
- 2024-10-16 Java 中 String 字符串可以有多长?65535?
- 2024-10-16 多学习才能多赚钱之:java判断字符是否是字母
- 2024-10-16 Java枚举深度解读,看这篇就够了(java枚举如何使用)
- 2024-10-16 注意:Java程序员容易犯的10大低级错误
- 2024-10-16 《Java语言程序设计》期末考试模拟试题——判断题和问答题
- 2024-10-16 好程序员Java学习路线分享Java基础之string
- 2024-10-16 五种js判断是否为整数类型方式(js怎么判断一个数是不是整数)
- 2024-10-16 「Java基础知识」Java中的字符串是什么
- 2024-10-16 简谈Java中“String类”的特点(java中的string的运用)
你 发表评论:
欢迎- 最近发表
-
- Mozilla Firefox 139 Beta已上线 提供更快的HTTP/3上传速度
- Win8专享拷贝能暂停,Win7其实也可以
- ASP.NET利用WEBUPLOADER实现超大文件分片上传、断点续传
- 河汉大大的《断点续传》-------黑暗哨兵和向导的绝美爱恋
- 用C# 实现断点续传 (HTTP)
- 开源断点续传下载软件FDM获推6.21.0.5639版更新
- 前端大文件切片上传,断点续传、秒传等解决方案,VUE中使用实例
- SpringBoot 实战:文件上传之秒传、断点续传、分片上传
- 一文搞定SpringBoot分片上传、断点续传、大文件极速秒传功能
- SPRING-BOOT实现HTTP大文件断点续传分片下载
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)