ch15——字符串 问题与解决

问题与解答

问题一(substring的边界问题)

 public String substring(int beginindex, int endindex);

包括两个边界 beginindex 和 endindex吗?

解答

包含开始位置,不包含结束位置
【beginindex,endindex)

问题二(字符串拼接的内存问题)

这种截取字符串的方法,会在常量池创建 一个新的 内容吗?

解答

会,不会改变原来字符串,每次改变都会在常量池中创建空间,所以频繁拼接等改变字符串,会在内存生成大量无用空间,故而有了StringBuffer类

问题三(字符串索引的起始点问题)

int index = fileName.lastIndexOf(".");
if(index!=-1 && index!=0 &&
fileName.substring(index+1, fileName.length()).equals("java")){
fileCorrect = true;
}else{
System.out.println("文件名无效。");
}

索引是不是从0开始,如果是0会索引越界吗,为什么index要!= -1?

解答

索引是从0开始,不会越界,因为截取包含头,不包含尾。

问题四(split方法无法分割的特殊字符)

在完成作业时,

String str1 = "1.2.3.4.5";
String[] strs = str1.split(".");

无法正确的使用"."进行字符串的分割,为什么呢?

解答

经过查询,符号"."属于正则表达式中的符号,在使用这些符号本身的时候需要转义。
在当下,需要转义的字符有

字符转义不加转义的结果
.\\.输出了空字符串数组
|\\|把数组按照字符每一项分割
*\\*报错
\\\\\报错
[]\\[\\]报错

问题五(继问题四、什么是正则表达式)

什么是正则表达式,有什么作用

解答

正则表达式以我的理解就是具有一些特殊功能的字符,简化操作,帮助我们。

字符意义
\n换行
\t制表符
\和&逻辑运算
\u后面跟四个十六进制的数字,表示Unicode字符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值