Java语言中常见字符串操作总结

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  Replace方法替换字符串。

  笔者在应用系统开发中,还碰到过替换字符串的需求。如在一个ERP系统中数据库存在这一张产品信息表。在这个表中有一个产品规格的字段,其中保存着产品的原材料、颜色、环保要求等等。前段时间由于一个客户的环保要求出现了变化,要求在所有的原材料上都必须有绿色环保标志。所以客户希望能够将某一类原材料规格字段中的“无绿色环保标志”替换为“必须包含绿色环保标志”。由于这个字段中的内容不只是包含这个内容,所以通过普通的Update更新语句无法满足用户的需求。用户希望能够像Word文档中的那种查找替换的功能,来实现这个需求。

  考虑到用户的实际需求,笔者给用户提出了两个解决的建议。一是通过数据库来解决。即先将这类产品的规则字段和关键字导出到Excel表格。然后利用excel工具中的查找替换功能来完成这个替换作业。最后再利用带子查询的更新语句来更新相关的内容。虽然这个处理起来比较麻烦,而且需要有精通数据库的高手才能够操作,但是至少不需要进行二次开发,可以帮助企业省去二次开发的成本。二是在应用程序层面解决。即笔者可以在现有应用软件的基础上开发一个小工具,用来完成用户所需要的更新。这就主要是通过replace方法来实现的。最后用户而是挑选了第二种方法。因为他们担心以后还会遇到很多类似的需求,还不如一次性解决为好。最终笔者通过使用replace()方法完成了用户的需求。这个方法可以实现将指定的字符或者字符串替换成新的字符。如replace(“abc”,”sdf”)这个例子中,就是使将字符串abc替换成字符串sdf。如果有同时替换一张表中多条记录的字符串,则还需要结合循环语句来使用。

  在使用这个方法来替换字符串的时候,需要注意以下几点。一是如果要替换的字符串如果在原字符串在出现多次的话,这个方法会将所有符合条件的旧字符串都替换掉。为此在输入被替换字符串的时候,最后需要输入完整,能够实现精确的匹配。如上面这个环保标志的例子中,最好输入比较完整的需要替换的字符,如“无绿色环保标志”替换为“必须包含绿色环保标志”。而不是写成“无”替换为“必须包含”。如果规则字段中无只出现一次的话,那么最终的结果是相同的。但是如果在同一个字段中出现多次的话,那么最后的结果会比较严重,会破坏原有的数据。为此在使用这个方法来替换字符串的时候,要在运行的界面中做好相关的提示,比且可以要求用户先对这张表或者数据库进行相应的备份。以防止替换操作失误而造成的不可挽回的损失。二是需要注意如果要替换的字符串是英文字符串的话,那么大小写是敏感的。也就是说,在书写被替换的字符(即查找条件)的时候,大小写要一致。如果不一致的话,就无法顺利完成替换作业。有时候如果原有记录中,某些字段大小写书写不一致,那么也会影响最终的替换效果。故当用户使用这个作业时,程序开发人员也有义务提醒用户注意大小写。

  利用equals方法来判断两个字符串是否相等。

  在实际工作中,程序开发人员往往还需要判断两个字符串是否相等。如在一些决策分析系统中,需要判断两个长字符串中有哪些内容是不同的。此时可能就需要先判断连个字符串内容是否相同。如果不同的话,还需要通过其他相关的技术比较其中的每一个单词,找出具体有哪些不同。这里需要注意的是,判断连个字符串是否相同,是不能够使用==判断符号的。因为这符号好是用来判断字符串所对应的地址是否相同。通常情况下,即使两个字符串完全相同,其在内存中的存储位置也是不同的。所以利用这个运算符来判断两个字符串的内容是否相同,往往会得出错误的答案。在进行类似的判断时,笔者建议程序开发人员采用equals方法。如果两个字符串具有相同的字符和长度的时候,则这个方法会返回一个true值。在使用这个方法的时候,需要注意空格或者大小写对其的影响。如果用户在比较时,希望忽略头部空格与尾部空格的话,那么在比较之前,程序开发人员先要使用trim方法去除头尾部的空格。如果用户在比较时,希望忽略大小写的不同时,则就需要先将所有的字符转换为大写或者小写,再进行比较。

[1][2]

偶尔因高山流水的美丽停留,

Java语言中常见字符串操作总结

相关文章:

你感兴趣的文章:

标签云: