gpt4 book ai didi

java - 用 EditText 中的值填充二维数组

转载 作者:行者123 更新时间:2023-12-01 09:55:57 25 4
gpt4 key购买 nike

我有 EditText 和数组。我想用 EditText 字段中的值填充数组。所有字符都是数字。我怎样才能实现这个目标?我试过这个:

...
int [][] a = new int [100][100];
n=1;//now 1, but this value entered in EditText
...
if (edit_1.getText().length() > 0) {
for (int ii = 0; ii < a.length; ii++) {
a[ii][n+1] = Integer.parseInt(String.valueOf(edit_1.getText().charAt(ii)));
}
}
...
a[1][n+2]=a[1][n+1];
...

我在 LogCat 中得到的内容:

05-13 23:40:55.046: E/AndroidRuntime(27281): FATAL EXCEPTION: main05-13 23:40:55.046: E/AndroidRuntime(27281): Process: aectann.dcsmp, PID: 2728105-13 23:40:55.046: E/AndroidRuntime(27281): java.lang.IndexOutOfBoundsException: charAt: 4 >= length 405-13 23:40:55.046: E/AndroidRuntime(27281):    at android.text.SpannableStringBuilder.charAt(SpannableStringBuilder.java:121)05-13 23:40:55.046: E/AndroidRuntime(27281):    at aectann.dcsmp.Zhegalkin_polynomial.zheg(Zhegalkin_polynomial.java:230)05-13 23:40:55.046: E/AndroidRuntime(27281):    at aectann.dcsmp.Zhegalkin_polynomial$1.onClick(Zhegalkin_polynomial.java:122)05-13 23:40:55.046: E/AndroidRuntime(27281):    at android.view.View.performClick(View.java:4811)05-13 23:40:55.046: E/AndroidRuntime(27281):    at android.view.View$PerformClick.run(View.java:20136)05-13 23:40:55.046: E/AndroidRuntime(27281):    at android.os.Handler.handleCallback(Handler.java:815)05-13 23:40:55.046: E/AndroidRuntime(27281):    at android.os.Handler.dispatchMessage(Handler.java:104)05-13 23:40:55.046: E/AndroidRuntime(27281):    at android.os.Looper.loop(Looper.java:194)05-13 23:40:55.046: E/AndroidRuntime(27281):    at android.app.ActivityThread.main(ActivityThread.java:5549)05-13 23:40:55.046: E/AndroidRuntime(27281):    at java.lang.reflect.Method.invoke(Native Method)05-13 23:40:55.046: E/AndroidRuntime(27281):    at java.lang.reflect.Method.invoke(Method.java:372)05-13 23:40:55.046: E/AndroidRuntime(27281):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)05-13 23:40:55.046: E/AndroidRuntime(27281):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)

121 - 函数调用;

230 - a[ii][n+1] = Integer.parseInt(String.valueOf(edit_1.getText().charAt(ii)));

最佳答案

也许这可能是该异常的解决方案:

if (edit_1.getText().length() > 0) {
for (int ii = 0; ii < edit_1.getText().length(); ii++) {
a[ii][n + 1] = Integer.parseInt(String.valueOf(edit_1.getText().charAt(ii)));
}
}

如果您只想创建这些字符所需的空间,也许您需要使用类似的东西(但我认为这需要改变您访问数据的方式):

int [][] a = new int [100][];
n=1;//now 1, but this value entered in EditText
...
if (edit_1.getText().length() > 0) {
a[n+1] = new int[edit_1.getText().length()];
for (int ii = 0; ii < a.length; ii++) {
a[n+1][ii] = Integer.parseInt(String.valueOf(edit_1.getText().charAt(ii)));
}
}

希望对你有帮助

关于java - 用 EditText 中的值填充二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37219073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com