字符串分割比较的一些总结

因为近期项目总结的时候,关于分割字符串和字符比较出现了一些问题,因此在这里记录一下各种情况下字符串分割应该注意的问题,以备之后的项目开发中参照。

  • java中关于字符分割应该注意的几点问题。

          (一) 在java.lang包中有String.split()方法,返回是一个数组,这个也是我们分割字符的时候经常使用的方法。关于这个方法的使用留意下面几点:

    1. 如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".")。
    2. 如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用String.split("|")。"|" 分隔串时虽然能够执行,但是却不是预期的目的,"\\|"转义后即可得到正确的结果。
    3. 如果在一个字符串中有多个分隔符,可以用“|”作为连字符,比如:“acount=? and uu =? or n=?”,把三个都分隔出来,可以用String.split("and|or")。
    4. "+" "*"同样也不是有效的模式匹配规则表达式,用"\\+" "\\*"转义后即可得到正确的结果;
    5. 如果想在串中使用"\"字符,则也需要转义.首先要表达"temp\demo"这个串就应该用"temp\\demo",如果要分隔就应该这样才能得到正确结果:String[] strlist = "temp0\\temp1\\temp2".split("\\\\")。
    6. 可以利用正则表达是进行分割,例如:
1       String strtemp = "{1,att,7},{2,break,7},{3,crit,7},{4,combo,7},{5,break,7},{6,hit,7}";
2       String reg = "/,(?=\\{)/g";
3       String[] temp = strtemp.split(reg);
View Code
  • java中用到字符串作为比较条件时,注意几点问题。
  1. 第一种情况:判断数据库里主表的某个字段符合某个字符的时候,进行一些处理。这个时候除非数据库里的字段的大小写代表不同的情况,或者项目中有特殊的要求,一般情况下我们在java中做判断的时候,会定义一个固定的字符(大写或者小写)然后把取到的值统一转换为大写或者小写进而再进行比较,这样做的好处就是可以避免数据的大小写变更带来的代码修改问题,还有一点就是可以避免因为一些主表数据没有处理好带来的受入指摘。
  2. 第二种情况:这个也是老生常谈的问题,一定要让定义的常量作为比较的主体,避开空指针的问题。字符串的比较中尽可能的不要用等号判断,最好是判断equals方法。
  3. 第三种情况:不同类型的数据进行比较的时候一定要考虑字符的类型转换合不合适,切记出现将“a”强制转化为int类型的问题。虽然看着有些可笑,但这个往往是项目里最容易出现的问题,一般情况下出现这个问题,并不是因为做代码的人不知道转化会出问题。

          ① 对控件的输入范围没有做好限制,要求不该出现的字符出现了,导致判断的时候没有考虑特殊字符的转化。(控件输入的制御问题要考虑全面,前后台都需要)

          ② 垃圾数据的问题(跟开发无关)

原文地址:https://www.cnblogs.com/xiaoxiaochengxuyuan/p/5628970.html