【发布时间】:2017-04-06 07:06:30
【问题描述】:
我是 android 编程新手。我尝试构建一个用于冒泡排序模拟的应用程序,我将在其中输入整数(单字符或双字符)并获得排序数字的输出。在这里,我通过搜索/研究并在其他人的帮助下构建了此代码。
public class Simulation extends AppCompatActivity {
TextView Result;
EditText Input;
Button ASButton;
int i,j,temp,num[];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ASButton = (Button) findViewById(R.id.button);
Input = (EditText) findViewById(R.id.editText);
Result = (TextView) findViewById(R.id.textView2);
ASButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
BubbleSort();
}
});
}
public void BubbleSort() {
Spannable spn = Input.getText();
num = new int[spn.length()];
int count = 0;
for (int i = 0; i < spn.length(); i++){
if((spn.charAt(i)+"").matches(".*\\d.*")){
num[i] = Integer.parseInt(""+spn.charAt(i));
count++;
}
}
for (i = 0; i < count; i++) {
for (j = i + 1; j < count; j++) {
if (num[i] > num[j]) {
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
String result = "";
for (int i = 0; i < num.length; i++){
result += num[i] + " ";
}
Result.setText(result);
}
}
在这段代码中,我得到了单个字符(0 到 9)的结果。但它不适用于两个或更多字符(10 个或更多)。当我使用“空格”分隔整数时,它会显示一些“0”,结果错误。请告诉我如何解决这个问题。谢谢。
【问题讨论】:
-
有任何理由以可能最糟糕的方式手动排序而不是使用
Collection.sort()? -
spn.charAt(i)返回单个字符。您需要查看split()。 -
split() 表示“无法解析方法 split()”。我可以知道为什么我得到了反对票吗?我在任何地方都没有找到我的解决方案,这就是为什么我在这里发布我的问题。它不是link 的副本。如果可以的话,请帮助我。谢谢@KenY-N
-
spn.toString().split();您需要将Spannable(具有CharSequence接口)转换为String -
stackoverflow.com/questions/43238912/… 的可能副本。由同一用户询问