java,js字符串综合应用
一、Java字符串处理类的选择
①String:String的值是不可变的,这就导致每次对String的操作都会生成
新的String对象,不仅效率低下,而且大量浪费有限的内存空间。
②StringBuffer:StringBuffer是可变类,和线程安全的字符串操作类,任何
对它指向的字符串的操作都不会产生新的对象。每个StringBuffer对象都
有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容
量,当字符串大小超过容量时,会自动增加容量。
③StringBuilder:StringBuilder和StringBuffer类功能基本相似,主要区别在
于StringBuffer类的方法是多线程安全的,而StringBuilder不是线程安全
的,相比而言,StringBuilder类会略微快一点。
④PS:不需要频繁操作选择String类→不考虑线程安全选择StringBuilder
类→线程安全选择StringBuffer类。
二、Java正则案例剖析
private static String format(String pattern, Object ... args) {
//TODO 使用正则表达式实现,MessageForamt不要拿来秀
//要点Pattern, Matcher, String, StringBuilder
StringBuffer sb = new StringBuffer();
//将给定的正则表达式编译到模式中。
Pattern p = www./doc/407472842.html
pile("\\{\\s*(\\d+)\\s*\\}");
//创建匹配给定输入与此模式的匹配器。
Matcher m = p.matcher(pattern);
//是否匹配成功
while(m.find()){
/*appendReplacement替换匹配到的字符串;
* group()返回在以前匹配操作期间由给定组捕获的输入子序列;
* m.group(1)即为正则表达式中(\\d+)匹配到的值;
* Java正则中组的概念很重要,运用得当可以使代码变得精简;
*/
m.appendReplacement(sb, args[Integer.up(1))].toString());
}
/
*appendTail可以在一次或多次调用appendReplacement 方法后调用它来复制剩余的输入序列。*/
m.appendTail(sb);
String();
}
String str = format("{0}向{ 1}借了{ 2 }元", "张三", "李四", 10000);
System.out.println(str); //输出: 张三向李四借了10000元;
三、String
1.字符串比较
①equals() //判断内容是否相同。
②== //判断地址是否相同。
③compareTo() //判断字符串的大小关系。
④compareToIgnoreCase(String int) //在比较时忽略字母大小写。
⑤equalsIgnoreCase() //忽略大小写的情况下判断内容是否相同。
⑥regionMatches(int toffset, String other,int ooffset,int len)
测试两个字符串区域是否相等。
将此String 对象的一个子字符串与参数other 的一个子字符串进行比
较。如果这两个子字符串表示相同的字符序列,则结果为true。要比较
的此String 对象的子字符串从索引toffset 处开始,长度为len。要比
较的other 的子字符串从索引ooffset 处开始,长度为len。
⑦reagionMatches(Boolean ignoreCase,int toffset,String other,int ooffset,int
len)
用布尔类型的参数指明两个字符串的比较是否对大小写敏感。
2.查字符串中某个位置的字符
①public char charAt(int index)。
返回指定索引index位置上的字符,索引范围从0开始。
3.查指定字符串在字符串中第一次或最后一词出现的位置
①public int indexOf(String str)。
从字符串开始检索str,并返回第一次出现的位置,未出现返回-1。
②public int lastIndexOf(String str)。字符串常量使用( )作为定界符
返回指定子字符串在此字符串中最右边出现处的索引。
③public int indexOf(String str,int fromIndex)。
从字符串的第fromIndex个字符开始检索str。
④public int lastIndexOf(String str,int fromIndex)。
返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引
fromIndex开始反向搜索。
⑤public boolean contains(CharSequence s)。
当且仅当此字符串包含指定的char 值序列时,返回true。
4.检查字符串的起始字符和结束字符
①public boolean startsWith (String prefix,int toffset)。
prefix - 前缀。
toffset - 在此字符串中开始查的位置。
测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
②public boolean startsWith (String prefix)。
测试此字符串是否以指定的前缀开始。
③public boolean endsWith(String suffix)。
测试此字符串是否以指定的后缀结束。
5.截取子串
①public String subString(int beginIndex)。
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指
定索引处的字符开始,直到此字符串末尾。
②public String subString(int beginIndex,int endIndex)。
返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定
的beginIndex 处开始,直到索引endIndex - 1 处的字符。因此,该子字
符串的长度为endIndex-beginIndex。
6.字符串的替换
①public String replace(char oldChar,char newChar)。
返回一个新的字符串,它是通过用newChar 替换此字符串中出现的所有oldChar 得到的。
②public String replace(String target,String replacement)。
使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。该替换从字符串的开头朝末尾执行,例如,用"b" 替换字符串"aaa" 中的"aa" 将生成"ba" 而不是"ab"。
③public String replaceAll(String regex,String replacement)。
使用给定的replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
调用此方法的placeAll(regex, repl) 形式与以下表达式产生的结果完全相同:
www./doc/407472842.html
pile(regex).matcher(str).replaceAll(repl)
7.字符串的大小写替转换
①public String toLowerCase(Locale locale)。
使用给定Locale 的规则将此String 中的所有字符都转换为小写。
②public String toLowerCase()。
使用默认语言环境的规则将此String 中的所有字符都转换为小写。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论