即使我的代码按照我想要的方式工作,是否有必要解决Netbeans IDE输出窗口中显示的错误?

时间:2016-11-05 15:11:51

标签: java netbeans compiler-errors

假设我想在用户的输入中输入“of”字样

我正在创建一个应用程序,而不是在这个哑输出屏幕中完成(这只是一个例子)

abofd

如果用户输入i,它肯定会识别位于2-4的位置。 但是当i < text.length() - 1值为4时,它会从4-6检查位置,但是当不存在位置6时,它会给出错误。 我知道你在考虑我在第5行设置computed_signature = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new('sha256'), secret, request.raw_post) provided_signature = request.headers['Webhook-Signature'] Rack::Utils.secure_compare(provided_signature, computed_signature) # => false ,但我的原始代码需要运行到最后!

1 个答案:

答案 0 :(得分:1)

验证来自用户的输入总是一个的想法,但是你太过于复杂了!更糟糕的是,你直接写下了错误的代码:

String text = input.nextLine();
int check = 0;
for(int i = 0; i < text.length(); i++;){
   if(text.substring(i, i + 2) .equals("of")){

以上无法工作!你看, i 从0迭代到文本LENGTH。但是你使用i + 2从文本中获取子串。 (所以:向你的第一个ArrayIndexOutOfBoundsException打个招呼)。

相反,您可以执行以下操作:

if (text.contains("of")) {

if (text.indexOf("of") >= 0) {

查明您的字符串是否包含“of”。

并在标题中回答您的问题:绝对是。编程是指在很大程度上成为一名优秀的工匠。一个优秀的工匠保持他所有的工具和材料按顺序。他不允许乱七八糟,浪费,...

所以,长话短说:从一天一个到永恒:在编写代码时,你会努力实现零容忍政策:没有编译错误,没有警告,您的代码中没有任何内容不属于那里!