字符串操作
String类
- String可以表示一个字符串。
- String类实际是使用字符数组存储的。
String类的两种赋值方式:
- 一种称为直接赋值:
String name = “小白”
- 通过关键字new调用String的构造方法赋值
String name = new String(“小白”)
String类的两种赋值分析:
- 字符串常量池
- String name = new String(“小白”),在内存中的分析
- String name =“小白”,在内存中的分析
String类编译期与运行期分析:
- 编译期和运行期
- 代码示例:4种情况分析
String类字符与字符串操作方法:
String类字节与字符串操作方法:
String类判断是否以指定内容开头或结尾:
String类替换操作:
String类字符串截取操作:
String类字符串拆分操作:
String类字符串查找操作:
String类其它操作方法:
StringBuffer类
在实际开发当中,我们经常会使用到字符串连接的操作,如果用String来操作,则使用“+”号完成字符串的连接操作。
使用String连接字符串,代码性能会非常低,因为String的内容不可改变。
解决这个问题的方法是使用StringBuffer。
StringBuffer类源码分析
StringBuffer常用操作方法
StringBuilder类
StringBuffer的兄弟StringBuilder:
一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比StringBuffer 要快。
JDK1.5以后,字符串相加原理分析
程序国际化
对国际化程序的理解
Internationalization:国际化程序可以这样理解:
- 同一套程序代码可以在各个语言环境下进行使用。
- 各个语言环境下,只是语言显示的不同,那么具体的程序操作本身都是一样的,那么国际化程序完成的就是这样的一个功能
Locale类
Locale 对象表示了特定的地理、政治和文化地区。需要 Locale 来执行其任务的操作称为语言环境敏感的操作,它使用 Locale 为用户量身定制信息。例如,显示一个数值就是语言环境敏感的操作,应该根据用户的国家、地区或文化的风俗/传统来格式化该数值。
- 使用此类中的构造方法来创建 Locale:
Locale(String language)
Locale(String language, String country)
- 通过静态方法创建Locale:
getDefault()
ResourceBundle类
国际化的实现核心在于显示的语言上,通常的做法是将其定义成若干个属性文件(文件后缀是*.properties),属性文件中的格式采用“key=value”的格式进行操作。
- ResourceBundle类表示的是一个资源文件的读取操作,所有的资源文件需要使用
- ResourceBundle进行读取,读取的时候不需要加上文件的后缀。
- getBundle(String baseName)
- getBundle(String baseName,Locale locale)
- getString(String key)
处理动态文本
- 前面的示例读取的内容都是固定的,如果现在假设要想打印这样的信息“欢迎你,XXX!”,具体的名字不是固定的,那么就要使用动态文本进行程序的处理。
- 进行动态的文本处理,必须使用java.text.MessageFormat类完成。这个类是java.text.Format的子类。
Math与Random类
Math类
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
使用Math类可以有两种方式:
- 直接使用(Math所在的包java.lang为默认引入的包)
- 使用 import static java.lang.Math.abs; 静态导入
Random类
Random:此类的实例用于生成伪随机数流
日期操作类
Date类
- 类 Date 表示特定的瞬间,精确到毫秒,也就是程序运行时的当前时间。