Java でメソッドを適切に動作させるには、いくつかの問題があります。プログラムでは、さまざまな長さのさまざまな単語で構成される配列を作成しました。私が取り組んでいる方法は、文字列の最初の 3 文字を取ることになっています。obj.substring(0,3) を使用しています。しかし、私は StringIndexOutOfBoundException を取得しています。誰でもこの問題を解決するのを手伝ってくれませんか。ここに私のコードがあります:
private void singleCurrencyAsynctaskCaller() {
isSingleCurrencyResultOk = false;
String from = subSpinner1.getSelectedItem().toString().trim();
String to = subSpinner2.getSelectedItem().toString().trim();
String from1 = from.substring(0, 3);
String to1 = to.substring(0, 3);
if (!from1.equals(to1)) {
String RESTURL = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22"
+ from1
+ to1
+ "%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=";
AsyncTaskSingleCurrency singleCurrencyAsyncTask = new AsyncTaskSingleCurrency(
ConverterActivity.this,
new FetchSingleCurrencyTaskCompletedListner());
singleCurrencyAsyncTask.execute(RESTURL);
} else {
currencySingleRate = 1.0;
isSingleCurrencyResultOk = true;
callCurrencyLogic(true);
}
}
私はこの例外を得ました:
java.lang.StringIndexOutOfBoundsException in java.lang.String.substring
java.lang.StringIndexOutOfBoundsException
at java.lang.String.substring(String.java:1579)
at com.zyksa.converter.
ConverterActivity.singleCurrencyAsynctaskCaller(ConverterActivity.java:402)
at com.zyksa.converter.ConverterActivity.onClick(ConverterActivity.java:580)
at android.view.View.performClick(View.java:2408)
at android.view.View$PerformClick.run(View.java:8816)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)