-2

Я хочу отсортировать массив. Я не могу понять, как принимать входные данные из поля edittext и преобразовывать отдельные цифры в массив.В андроид-студии, как я могу взять ввод в поле EditText как число, например; 1452 и преобразовать его в целочисленный массив {1,4,5,2}

+1

преобразования целого числа в строку, а затем извлечь каждый символ из строки, преобразование каждого символа в целое число. –

ответ

0

Получить строку из вашего 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 
    } 
} 
+0

Спасибо, человек! Ты спасатель. Любая возможность я могу получить этот массив без скобок и комов.! ?? –

+0

См. Мой отредактированный ответ выше. Надеюсь, вы пытаетесь самим закодировать эти вещи. Если мой ответ был полезен, пожалуйста, примите мой ответ, нажав на серый галочку под стрелками вверх и вниз моего представления. – jtwaller

+0

Спасибо, Bro! Прекрасно работает! Поскольку новый пользователь не может проголосовать за ваш ответ на самом деле! –

0

хорошо сначала сделать

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; 
} 
+0

Правильно ли это? I m пытается вставить сортировку public void iSort (int [] a) { Строковый текст = input.getText(). ToString(); int [] array = new int [text.length()]; for (int i = 0; i -1) && (массив [i]>)) { массив [i + 1] = массив [i]; i--; } массив [i + 1] = ключ; printnumbers (массив); –

+0

äm Что делает 'int [a]' даже там? – BAAAZINGA

0

Просто сделай вот так ... получить строку и преобразовать его с ParseInt

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

внимательно прочитайте вопрос, прежде чем ответить на это. –