1.使用String、StringBuilder和StringBuffer
(1) String对象是不可变的,但String引用变量不是
(2) 如果创建了新的String而没有给它赋值,则对程序来说它将丢失
(3) 如果将String引用重定向到新的String,则旧的String可能丢失
(4) 除了substring()的第二个变元外,String方法使用基于0的索引
(5) String类是最终类——其方法不能被重写
(6) 当JVM发现String字面值时,就将它添加到String字面值池中
(7) String有一个名为length()方法,数组有一个名为length的属性
(8) StringBuffer的API与StringBuilder的API相同,但StringBuffer的方法并未针对线程安全进行同步
(9) StringBuilder的方法应该运行得比StringBuffer的方法更快
(10) 以下各项同时适用于StringBuffer和StringBuilder:A.它们都是可变的,无需创建新对象即可改变它们B.StringBuffer方法作用于调用对象上,无需再语句中显示赋值即可改变对象C.StringBuffer的equals()方法没有被重写,它不比较值
(11) 记住链式方法是从左至右计算的
(12) 要记住的String方法有:charAt()、concat()、equalsIgnoreCase()、length()、replace()、substring()、toLowerCase()、toString()、toUpperCase()、trim()
(13) 要记住的StringBuffer方法有:append()、delete()、insert()、reverse()、toString()
2.文件I/O
(1) Java.io中需要理解的类有:File、FileReader、BufferedReader、FileWriter、BufferWriter以及Console
(2) 新的File对象并不意味着在硬盘驱动器上有新的文件
(3) File对象可以表示文件或目录
(4) File类允许管理(添加、重命名或删除)文件和目录
(5) createNewFile方法和mkdir()方法用于添加条目到文件系统中
(6) FileWriter类和FileReader类是低级I/O类.可使用它们读写文件,但通常应包装它们
(7) Java.io中的类被设计成”链接的”或”包装的”(装饰模式的常见用法)
(8) 将BufferedReader”包装”在FileReader周围,或将BufferedWriter”包装”在FileWriter周围,它们用于获得对更高级/方便方法的访问
(9) PrintWriter可用于包装其它Writer,但从Java5起,它们可以直接从File或String构建
(10) Java5的PrintWriter具有新增的append()、format()和printf()方法
(11) Console对象能读取不回显的输入,是通过使用System.console()实例化的
3.序列化
(1) 需要理解的类都在java.io包中,它们包括:ObjectOutputStream和ObjectInputStream,以及FileOutputStream和FileInputStream,因为要通过它们创建ObjectXxxStream类将使用的低级流
(2) 在可以序列化一个类的对象之前,该类必须实现Serializable接口
(3) ObjectOutputStream.writeObject()方法用于序列化对象,而ObjectInputStream.readObject()方法用于反序列化对象
(4) 如果将一个实例变量标识为transient,它将不会被序列化,即使将对余下的对象状态进行序列化也是如此
(5) 可以通过实现writeObject()和readObject()方法来补充类的自动序列化过程。如果这样做,对defaultReadObject()和defaultWriteObject()的嵌入式调用将处理常规的序列化任务部分
(6) 如果一个超类实现了Serializable,那么它的所有子类也是如此
(7) 如果超类没有实现Serializable,那么在反序列化一个子类对象时,将会运行非序列化的超类的构造函数
(8) DataInputStream和DataOutputStream了解
4.日期、数字和货币
(1) 需要理解的类有:java.util.Date、java.util.Calendar、java.text.DateFormat、java.text.NumberFormat以及java.util.Locale
(2) Date类的大多数方法都已经不建议使用了
(3) Date被保存成long型,它是从1970年1月1日起到现在的毫秒数
(4) Date对象是Calendar类和Locale类之间的媒介
(5) Calendar提供了一组用于操作日期的强大方法,可以执行诸如获取星期几,也可添加月数或念书或其它增量到日期中之类的任务
(6) 使用静态工厂方法getInstance()创建Calendar实例
(7) 应该理解的Calendar方法包括add()和roll(),前者允许添加或减去多个日期成分(分钟、天数、年数等),后者的工作方式与add()类似,但不会递增日期的较大部分(例如:添加10个月到October日期中会将月份变成August,但不会递增Calendar的年度值)
(8) DateFormat类中有多种格式样式可用
(9) 可针对不同地区应用DateFormat样式,以便为任何给定的日期创建一组广泛的输出
(10) DateFormat.format()方法用于创建包含有正确格式化日期的字符串
(11) Locale类与DateFormat和NumberFormat一起使用
(12) DateFormat对象和NumberFormat对象都可以用特定的、不可变的Locale类来构造
(13) 对于SCJP考试,应理解使用语言或使用语言和国家的组合来创建Locale
5.理解、分解和格式化
(1) Regex是正则表达式的简写,它用于在大型数据源中查找数据的模式
(2) 正则表达式是存在于Java及其它语言中的子语言
(3) 正则表达式允许使用字面值字符或元字符创建模式.元字符允许查找稍微抽象一些的数据,如”数字”或”空白”
(4) 研究:”\d”、”\s”、”\w”、”.”等元字符
(5) 正则表达式提供一些量词,它们可用来指定像”在一行中寻找1个或多个数字”这样的概念
(6) ?、*、+ 等贪婪量词
(7) Notice:元字符和字符串不能很好的混合,除非正确的”转义”它们。如:String s = “\\d“;
(8) Pattern类和Matcher类具有Java的最强大的正则表达式能力
(9) 理解Patter类的compile()方法以及Matcher类的matches()、pattern()、find()、start()和group()方法
(10) 可使用java.util.Scanner执行简单的正则表达式查找,但它主要用于分解
(11) 分解是将定界的数据分裂成小段数据的过程
(12) 在分解过程中,想得到的数据称为标记,分隔标记的字符串称为定界符
(13) 可利用Scanner类或利用String.split()执行分解
(14) 定界符可以是单一字符(如逗号)或者复杂的正则表达式
(15) Scanner类允许从一个循环内外分解数据,它允许随时停止分解
(16) Scanner类允许分解字符串、流或文件
(17) String.split()方法将会立即分解整个数据源,因此大量的数据处理起来可能相当慢
(18) Java5中新增了两个方法用于格式化输出的数据,它们是format()和printf().可以在PrintStream类中找到这两个方法,这个得一个实例是System.out中的out
(19) format()方法和printf()方法具有相同的功能
(20) 用printf()或format()格式化的数据是利用与基本类型或字符串变元有关的格式字符串完成的
(21) format()方法允许将字面值混合在格式字符串中
(22) 应该知道的格式字符串值有如下的类:A标志:-、+、0、(B.转换:b、c、d、f、s;
如果转换字符与变元类型不匹配,就会抛出一个异常
分享到:
相关推荐
在C#高级编程的第6版中,第08章深入探讨了字符串和正则表达式这两个关键概念。 **8.1 System.String类** System.String类是.NET框架中处理字符串的基础,它代表不可变的字符序列。这意味着一旦创建了字符串对象,...
- `substr(j, i)`:用于从字符串 `str` 的第 `j` 个字符开始截取长度为 `i` 的子串。 - `find(tep)`:返回子串 `tep` 在字符串 `str` 中首次出现的位置。 - `rfind(tep)`:返回子串 `tep` 在字符串 `str` 中最后一次...
以下是对C语言中JSON字符串生成与解析的详细说明: 1. JSON数据格式: JSON是一种基于文本的格式,它使用键值对来表示数据,类似于JavaScript的对象字面量。基本结构包括对象(键值对的集合,用花括号{}包围)和数...
`strptime`函数接收两个参数:一个是要解析的字符串,另一个是格式化字符串,用于指定日期和时间的布局。例如,如果你有一个形如"2023-04-15 16:30:00"的日期字符串,格式化字符串应为"%Y-%m-%d %H:%M:%S"。函数会...
5. 字符串流:对于需要将数据读取到字符串中或者从字符串中输出数据到其他地方的场景,使用istringstream和ostringstream类可以方便地实现这些功能。 6. C++11新增的I/O库功能:C++11标准对I/O库进行了不少扩展和...
6. 数据提取与解析:当我们需要从字符串中提取特定的数据时,可以使用各种方法。如果数据格式固定,可以使用切片和索引;如果数据格式复杂,可能需要编写自定义解析函数或利用正则表达式。例如,坐标字符串可能看...
`time.strftime()`用于将时间元组格式化为字符串,而`time.strptime()`则相反,可以将格式化字符串解析为时间元组。 `time.localtime()`函数接收一个时间戳,将其转化为当前时区的`struct_time`对象,而`time....
三、字符串格式化 有时候我们需要将数值或其他类型的数据转换为字符串形式。MATLAB中的`sprintf`函数可以帮助我们完成这一任务。它类似于C语言的`printf`,允许我们以指定的格式插入变量。例如,`num = 3.14159; ...
注意这里使用`%s`格式化字符串来接收输入,并且数组名`a`作为地址传递给`scanf()`。 5. **逆序操作**: - `int len = strlen(a);`:获取字符串`a`的长度。 - 使用`for`循环将字符串`a`中的字符逆序复制到数组`s1`...
3. 字符串索引与切片:可以像处理其他数组一样对字符串数组进行索引和切片,例如`str(1)`获取第一个字符串。 二、聚合字符串 聚合字符串是指将多个字符串合并成一个长字符串的过程,常用于报告生成、数据导出等场景...
- `sprintf`: 将格式化的数据写入字符串。 - `getline`: 从输入流读取一行文本到字符串。 2. **字符串处理问题** - **问题1**: 使用指针遍历字符串,根据字符类别计数。可以通过遍历字符串,判断每个字符的ASCII...
这种格式化使得计算机能够理解和解析这些字符串。在不同的场景下,可能会使用不同的日期和时间格式。 2. **编程语言中的日期时间处理**: - **Python**: Python提供了`datetime`模块,可以方便地进行字符串到日期...
5. **字符串格式化**:`Format`函数或`String.Format`方法允许我们按照指定格式创建字符串,如`String.Format("Today is {0}", DateTime.Now)`。 正则表达式(Regex): 1. **引入Regex类**:VB.NET中,通过引入`...
例如,你可以用它来验证用户输入、解析字符串格式化的数据,或者在实现搜索和替换功能时检查特定位置的字符。由于字符串是JavaScript编程中常见的数据类型,理解和熟练使用`charAt`对于提升JavaScript编程技能至关...
标题中的“PB解析XML字符串 把XML 变为数据窗口”指的是使用PowerBuilder(PB)这一编程工具,处理XML格式的数据,并将其转换成数据窗口对象的过程。数据窗口是PowerBuilder中的一个核心组件,用于显示、编辑和管理...
无论是数据清洗、格式化还是提取有用信息,字符串处理功能都发挥着至关重要的作用。例如,在报表生成时,可能需要将日期格式统一;在数据导入时,可能需要对字段进行分割;在搜索查询时,可能需要去除某些特殊字符等...
如果字符串中包含多个可变元素,需要使用`xliff:g`标签进行格式化,确保正确解析: ```xml 第 <xliff:g id="album">%d</xliff:g> 张专辑,第 <xliff:g id="song">%d</xliff:g> 首歌曲。</string> </resources>...