java字符串处理常见问题(不断补充)

系统 1608 0

  一、字符串相关函数的操作 1、indexOf(String str, int fromIndex)//返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。 说明:字符串的索引从0开始! 2、substring(int beginIndex, int endIndex)//返回一个新字符串,它是此字符串的一个子字符串。 说明:返回的字符串是beginIndex~endIndex-1,因此得到的字符串长度为endIndex-beginIndex 
  例如:"hamburger".substring(4, return "urge" 3、replaceAll(String regex, String replacement)//使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 说明: 
  (1)、以为 str.replaceAll("ab","b");就把str中的所有"ab"换成了"b"!注意,这个函数是将替换后的字符串返回了。因此应该str=str.replaceAll("ab","b"); 
  (2)、 
  4、split(String regex)//根据给定正则表达式的匹配拆分此字符串。返回String[] 说明: 
  (1)、String str=""," ",null,这三者的区别。 
  "",分配了内存,但值为空,length=0;java中不存在像C/C++中那样字符串后面有"\0" 
  " ",分配了内存,值为空格,length=1,对应一个ASCII码 
  null,没有分配内存,无法引用.length(),仅将str引用置为null,表示无引用~ 
  (2)、String[] xy = new String[0]; 
  在Java中允许创建一个大小为0的数组,也就是说"int[] emptyArray = new int[0];"在Java中是正确的。这样的数组没有分配空间?。用处是:当返回数组中元素为0时,可以不用返回null,而是返回一个[0]的数组,引用时不会像引用null那样出现异常!。当然,大小为负数的数组在Java中是不被允许的。 (3)、split()函数中会出现很奇怪的问题,例如http://www.cnblogs.com/liubiqu/archive/2008/08/14/ 1267867.html
  eg..1: 
  String s = "abc"; 
  String[] keys = s.split(""); 
  结果:keys长度为4,值分别为"",a,b,c。至今未能弄明白数组的第一个元素从何而来? 
  eg..2: 
  String s = " abc";//第一个位置上是空格 
  String[] keys = s.split(" ");//中间是空格 
  结果:keys长度为2,值为"",abc,也就是"空格"是分隔符!,这种才能通过空格来分割字符串,注意,不是第一种那样做! 
  注意:s="  ab",则用空格分开后的keys长度为3,分别为"","",ab。  
  而s="ab  ",则空格分开后的keys长度为1,是ab。这说明字符串中第一个字符是否为空格这一条件很重要!    
  若s=" ",则空格分开后的keys长度为0,说明字符串中是否有字符也很重要。
  eg..3: 
  String s = " abc"; 
  String[] keys = s.split("x");//字符串中不存在的字符 
  结果:keys长度为1,值为" abc"。 
  说明:如果split的字符串中不含有该子串,则返回原字符串! 
  eg..4: 
  String s = "abc"; 
  String[] keys = s.split(".");//特殊字符,若不转义("\\."),则会无法split,返回数组个数为0! 
  结果:keys长度为0!  
  说明:split无法进行后,不会返回一个null,而是返回一个大小为0的数组。这样程序更加健壮! 二、其他
  5、java中char和int间的转化:
  char可以直接转为int: 
  char x = 'A'; int y = x; 
  int转char则需要强制转换! 
  x=(char)y;
  6、正则匹配字符串。 
  String s = "abcd"; 
  System.out.println(s.match("[a-zA-Z]*"));//print true

java字符串处理常见问题(不断补充)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论