今天在刷力扣的时候,刷到一道级别是“简单”的字符串题目(力扣1576),具体来说就是把字符串中的问号替换成字符,然后不能有连续重复字符,具体的大家可以去看看题目要求。实现逻辑也很简单,就是遍历整个字符串,然后把问号替换,同时加一个判断函数确定没有重复字符。但是在具体编写的时候,踩了好多坑,导致自己改了好几次。所以想记录一下踩到的一些坑:
Java charAt()方法
charAt()方法返回的是char类型,而不是一个对象,因此我一开始用"s.charAt(i).equals(’?’)"的时候总是报“char cannot be dereferenced”错误。注意.equals()方法只能用于对象;上述的语句应该用“==”运算符,也即“s.charAt(i) == ‘?’”。
Java 特定位置字符替换方法
特定字符串替换可以用replace(int, int, String)方法实现,但要注意:
1.String类型没有replace()方法,要先将String类型转换成StringBuffer类型,语句如下:
StringBuffer s1 = new StringBuffer(s);
2.将其他类型转换成String类型的方法:valueOf(),具体语句如:
String.valueOf(replace)
Java 字符从a到z遍历
可以定义一个char类型的字符并赋初值,然后用自增运算符(++)。因为字符是以ASCII码存储的,例如a++则是b这样。
——————————————
最后贴一下自己的公众号:微信搜索公众号“茶迁”或扫描下图。平时自己踩到的坑都会在公众号记录,欢迎大家关注讨论~