这是我写题遇见的问题,还得从实践中找问题才能记住:
接口不能直接实例化
如:Queue<String> q=new Queue<String>();错
Queue是接口,应该这样写:
Queue<String> q = new LinkedList<String>();
或Queue<String> q = new PriorityQueue<String>();
----------------------------------------------------------------------------------------------
这个错误信息表明你在 Java 代码中尝试将一个 `int` 类型的值用作布尔条件。Java 中的条件语句(如 `if`、`while` 等)需要布尔类型的表达式,而不能直接使用整数。
不能while (sz--){},应该while(sz-->0)
必须是bool类型
----------------------------------------------------------------------------------------------
假设String s;
String不是数组,不能用s[0],s[1]等访问
如果想访问字符串中的字符,使用 `charAt` 方法
char ch = str.charAt(0); // 正确的写法
注意str.charAT(0)只是取出,不能修改
想要修改string,就别用string了,换用StringBuilder
String不可修改,想修改要转化为字符数组再变回去,太麻烦
所以以后可以都用stringbuilder
s.setCharAt(0, 'd')
如果你有一个方法需要一个字符串数组,但你传递了一个字符串:
String str = "Hello";
someMethod(str); // 这里会导致错误
你应该将其更改为:
String[] strArray = {"Hello"};
someMethod(strArray); // 正确的写法
确保在代码中使用正确的数据类型,以避免此类错误。
----------------------------------------------------------------------------------------------
把string传给stringbuilder:
StringBuilder tmp = new StringBuilder(startGene);
把string中的某个字符赋给stringbuilder:
tmp.setCharAt(i,base.charAt(j));
----------------------------------------------------------------------------------------------
判断字符串是不是相等:一定要用equals,这里tmp是stringbuilder
tmp.toString().equals(endGene)