1. ホーム

eclipse Java ファイルオープン例外解決 : java.lang.StringIndexOutOfBoundsException: 文字列のインデックスが範囲外:26

2022-02-14 03:47:42
<パス

この2日間、プログラムを作っていて、体調が悪くなった。夜遅くまでプログラムを書いていると、自分の指がどんな字を打っているのかわからなくなる。このとき、私の顔は緑色になっていた。

その後、直接プロジェクトファイルにアクセスし、notepad++で開いてみましたが、問題ありません。いろいろ探ってみて、ようやく原因がわかりました。eclipseでこのファイルを開くことについては、2つの方法があります。
最初の方法は、不測の事態を想定したもので、この種の問題には有効だと思います。それは、メモ帳++で開いて、全選択+カットして、eclipseで、間違ったファイルを閉じて、開きなおして、ファイルを貼り付けることです。今度はバグがないプログラムであれば同じになります。
2つ目の方法は、プログラムの中で解決する方法ですが、いろいろな原因が考えられますが、私の場合は、次のように変数宣言の後に"//"を追加することです。

......
public class ActiLogin extends Activity{


    private Context context;
    private Button loginBtn,forgetPasswdBtn;
    private EditText EditUsername,EditPasswd;
    private String userName,password;
    private String target;
    private Handler handler;
    private String result;
    private SharedPreferences sharedPre;
    @SuppressLint("HandlerLeak")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        context = ActiLogin.this;
......

これでいいんです、あとはこんな感じなら。

......
public class ActiLogin extends Activity{


    private Context context;//
    private Button loginBtn,forgetPasswdBtn;
    private EditText EditUsername,EditPasswd;
    private String userName,password;
    private String target;
    private Handler handler;
    private String result;
    private SharedPreferences sharedPre;
    @SuppressLint("HandlerLeak")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        context = ActiLogin.this;
......

そして、上のようなエラーが出ます。変更方法については、もう無意味なことはしないでください。