Java 在android studio中显示每个for循环迭代输出

Java 在android studio中显示每个for循环迭代输出,java,android,android-studio,append,settext,Java,Android,Android Studio,Append,Settext,我正在尝试演示由按钮单击触发的插入排序。显示输出中排序的所有步骤 输入整数个位数0-9 有人能帮我临时编写代码吗! 非常感谢您的帮助 O/p显示大括号和comas,因为它是一个数组。 我能在没有支架和昏迷的情况下得到o/p吗!? 而不是o/p[3,5,7,9],它应该类似于-3,5,7,9 public void btnClickMe(View v) { Button button = (Button) findViewById(R.id.button); EditTex

我正在尝试演示由按钮单击触发的插入排序。显示输出中排序的所有步骤

输入整数个位数0-9

有人能帮我临时编写代码吗! 非常感谢您的帮助

O/p显示大括号和comas,因为它是一个数组。 我能在没有支架和昏迷的情况下得到o/p吗!? 而不是o/p[3,5,7,9],它应该类似于-3,5,7,9

    public void btnClickMe(View v) {
    Button button = (Button) findViewById(R.id.button);
    EditText et = (EditText) findViewById(R.id.editText);
    TextView tv = (TextView) findViewById(R.id.textView2);
    insertionSort();
}
public void insertionSort(){
    EditText et = (EditText) findViewById(R.id.editText);
    String text = et.getText().toString();
    String txt1 = text.replaceAll(","," ");
    String txt= txt1.replaceAll(" ","");
    int[] array = new int[txt.length()];
    for (int i = 0; i < txt.length(); i++){
        array[i] = Character.getNumericValue(txt.charAt(i));
    }
    TextView tv = (TextView) findViewById(R.id.textView2);
    tv.setText("Output:");
    for (int j = 1; j < array.length; j++){
        int key = array[j];
        int i = j - 1;
        while ((i > -1) && (array[i] > key)){
            array[i + 1] = array[i];
            i--;
        }
    }
    array[i + 1] = key;
    tv.append(Arrays.toString(array).replaceAll(",","")+"\n");
}
public void btnClickMe(视图五){
Button Button=(Button)findViewById(R.id.Button);
EditText et=(EditText)findViewById(R.id.EditText);
TextView tv=(TextView)findViewById(R.id.textView2);
insertionSort();
}
public void insertionSort(){
EditText et=(EditText)findViewById(R.id.EditText);
字符串text=et.getText().toString();
字符串txt1=text.replaceAll(“,”和“”);
字符串txt=txt1.replaceAll(“,”);
int[]数组=新的int[txt.length()];
对于(int i=0;i-1)和&(数组[i]>键)){
数组[i+1]=数组[i];
我--;
}
}
数组[i+1]=键;
append(Arrays.toString(array.replaceAll(“,”,“)+”\n”);
}

我可能要求太多了,但我正在努力学习android,你的帮助会教我很多新东西。提前感谢。

首先,您的插入算法有缺陷。 其次,在每次追加之前,需要重置
文本视图的文本

int[] array = {6, 4, 3, 2};
// TextView tv = (TextView) findViewById(R.id.textView2);
// Resets the text to be blank.
// tv.setText("");

for (int i = 1; i < array.length; ++i) {
    int j = i;
    while (j > 0 && array[j - 1] > array[j]) {
        int temp = array[j];
        array[j] = array[j - 1];
        array[j - 1] = temp;
        --j;
    }
    System.out.println(Arrays.toString(array));
    // i.e. [4, 6, 3, 2]
    // tv.append(Arrays.toString(array) + "\n");
}
int[]数组={6,4,3,2};
//TextView tv=(TextView)findViewById(R.id.textView2);
//将文本重置为空白。
//tv.setText(“”);
对于(int i=1;i0&&array[j-1]>array[j]){
int temp=数组[j];
数组[j]=数组[j-1];
数组[j-1]=温度;
--j;
}
System.out.println(array.toString(array));
//即[4,6,3,2]
//附加(Arrays.toString(array)+“\n”);
}

首先,您的插入算法有缺陷。 其次,在每次追加之前,需要重置
文本视图的文本

int[] array = {6, 4, 3, 2};
// TextView tv = (TextView) findViewById(R.id.textView2);
// Resets the text to be blank.
// tv.setText("");

for (int i = 1; i < array.length; ++i) {
    int j = i;
    while (j > 0 && array[j - 1] > array[j]) {
        int temp = array[j];
        array[j] = array[j - 1];
        array[j - 1] = temp;
        --j;
    }
    System.out.println(Arrays.toString(array));
    // i.e. [4, 6, 3, 2]
    // tv.append(Arrays.toString(array) + "\n");
}
int[]数组={6,4,3,2};
//TextView tv=(TextView)findViewById(R.id.textView2);
//将文本重置为空白。
//tv.setText(“”);
对于(int i=1;i0&&array[j-1]>array[j]){
int temp=数组[j];
数组[j]=数组[j-1];
数组[j-1]=温度;
--j;
}
System.out.println(array.toString(array));
//即[4,6,3,2]
//附加(Arrays.toString(array)+“\n”);
}

实际上我不想更换。我想显示所有迭代,例如:I/p:6432 O/p应该是:4 6 3 2 3 4 6 2 2 3 4 6使用settext它只显示最后一次迭代ie;2 3 4 6我希望你明白了这个问题。那么,你所说的--“新o/p得到追加,而不是清除旧o/p并显示新数组”是什么意思?“我的意思是:如果我的I/p是421,它显示o/p:2 4 1 2 4。然后,当我插入新值(6 4 1)并单击排序按钮而不是文本字段以仅显示4 6 1 4 6时,它将显示2 4 1 2 4(以前的o/p)并附加新的o/p 4 6 1 1 4 6抱歉这些复杂的问题。如果它---“而不是文本字段以仅显示4 6 1 4 6,它将显示2 4 1 2 4(以前的o/p)附加新的o/p 4 6 1 4 6“……然后,您需要使用
setText
清除“以前的o/p”更新答案。我不想实际替换。我想显示所有迭代,例如:I/p:6432 O/p应该是:4 6 3 2 3 4 6 2 2 3 4 6使用settext它只显示最后一次迭代ie;2 3 4 6我希望你明白了这个问题。那么,你所说的--“新o/p得到追加,而不是清除旧o/p并显示新数组”是什么意思?“我的意思是:如果我的I/p是421,它显示o/p:2 4 1 2 4。然后,当我插入新值(6 4 1)并单击排序按钮而不是文本字段以仅显示4 6 1 4 6时,它将显示2 4 1 2 4(以前的o/p)并附加新的o/p 4 6 1 1 4 6抱歉这些复杂的问题。如果它---“而不是文本字段以仅显示4 6 1 4 6,它将显示2 4 1 2 4(以前的o/p)然后,您需要使用
setText
清除“先前的o/p”更新答案。