2016-11-05 22 views
0

Netbeans IDEの出力ウィンドウに表示されるエラーを解決する必要がありますか?

import java.util.*; 
Scanner input = new Scanner(System.in); 
String text = input.nextLine(); 
int check = 0; 
for(int i = 0; i < text.length(); i++;){ 
    if(text.substring(i, i + 2) .equals("of")){ 
      check = 0; 
    } 
} 

(これは一例に過ぎない)私はこのダム出力画面でオフに仕上げていない、アプリを作っていたユーザ

によって入力に入力された 'の取得したいと言いますユーザーがabofdと入力すると、必ず2-4のatの位置を認識します。 しかし、iの値が4の場合、位置は4-6からチェックされますが、位置6が存在しないため、エラーが発生します。 私はi < text.length() - 1を5行目に設定すると思っていますが、私のオリジナルコードは最後まで実行する必要があります!

+0

実行時エラーまたはコンパイル時エラーが発生していますか? Netbeansはランタイムエラーをマークしませんでしたが、ランタイムエラーとタグ付けしました。 –

+0

申し訳ありませんコンパイル時のエラー – KSJ10

+1

コンパイル時にエラーが発生した場合、あなたのコードがどのように動作するのですか?あなたのコードはコンパイルされませんか? –

答えて

1

ユーザーからの入力を検証するには、常にgoodアイデアがありますが、あなたは非常に多くのものを作りすぎています。

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

上記することはできません作品:さらに悪いことに、あなたは完全に間違っているコードを書きました!あなたが参照してください、私は 0からテキストの長さを繰り返します。しかし、次に、テキストから部分文字列を取得するためにi + 2を使用しています。 (そう:あなたの最初のArrayIndexOutOfBoundsExceptionにこんにちはと言ってください)。あなたの文字列は "の"が含まれている場合

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

または

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

を見つけるために:

代わりに、あなたのようなことを行うことができます。

タイトルで質問に答えてください:絶対にはい。プログラミングは、非常に大きな程度に良い職人であることについてです。良い職人は、彼のすべての道具と材料をの順でに保ちます。彼は、だから... ...、混乱、廃棄物のために長い話を短く

を許可していません:1日から、永遠に:なしコンパイラエラー:コードを書くとき、あなたはゼロトレランス政策のために努力します、警告はありません、あなたのコードには何もありません!

+0

ありがとう!!!!!!!!!!!! – KSJ10

+0

しかし、私も 'of'のポジションを得たいと思っています。 – KSJ10

+0

そして、* indexOf *の2番目の提案は何を返すのでしょうか?その呼び出しの引数として提供された文字列のインデックスを別名で表します。 – GhostCat

関連する問題