【问题标题】:In android studio how can i take input in EditText field as a number eg; 1452 and convert it into integer array{1,4,5,2}在 android studio 中,我如何将 EditText 字段中的输入作为数字输入,例如; 1452 并将其转换为整数数组{1,4,5,2}
【发布时间】:2016-09-20 21:40:01
【问题描述】:

我想对一个数组进行排序。我无法弄清楚如何从edittext字段中获取输入并将单个数字转换为数组。

【问题讨论】:

  • 将整数转换为字符串,然后从字符串中提取每个字符,将每个字符转换为整数。

标签: java android android-layout android-studio android-arrayadapter


【解决方案1】:

从 EditText 中获取字符串,然后使用 for 循环将每个数字存储到数组中。

public class EditTextArray extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edit_text_array);

        EditText et = (EditText) findViewById(R.id.editText);
        et.setText("1452");  // Normally user input here...

        String text = et.getText().toString();

        int[] array = new int[text.length()];
        for (int i = 0; i < text.length(); i++) {
            array[i] = Character.getNumericValue(text.charAt(i));
        }

        Log.d("Output: ", Arrays.toString(array));
        //09-20 14:27:45.272 20400-20400/com.jtwaller.test D/Output:: [1, 4, 5, 2]

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < text.length(); i++) {
            sb.append(array[i] + " ");
        }

        Log.d("Output: ", sb);
        //09-20 14:27:45.272 20400-20400/com.jtwaller.test D/Output:: 1 4 5 2 
    }
}

【讨论】:

  • 谢谢你!你是救生员。我有没有可能得到没有括号和逗号的数组。!??
  • 请参阅上面我编辑的答案。我确实希望您尝试自己编写这些代码。如果我的回答对您有帮助,请点击我提交内容的上下箭头下方的灰色复选标记接受我的回答。
  • 谢谢兄弟!完美运行!作为新用户实际上无法投票给您的答案!
【解决方案2】:

先做好

String s = yourEditText.toString();
Integer digitNumber = s.length();
Integer i = Integer.valueOf(s);

然后你必须读取单个数字你通过使用 Mod 运算符来做到这一点

new Integer[] I = new Integer[digitNumber];
for(int i=0; i<digitNumber;i++){
    I[i] = i % 10;
    i = i/10;
}

【讨论】:

  • 这是对的吗?我正在尝试插入排序 public void iSort(int[] a) { String text = input.getText().toString(); int[] 数组 = new int[text.length()]; for (int i = 0; i -1) && (array[i] > key)) { array[i + 1] = array[i];一世 - ; } 数组[i + 1] = 键;打印数字(数组);
  • äm int[a] 甚至在那里做什么?
【解决方案3】:

就这样做...获取您的字符串并使用 parseInt 进行转换

String number = "10";
int result = Integer.parseInt(number);

【讨论】:

    猜你喜欢
    • 2017-04-27
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多