所以基本上我已经为学校编写了一个程序来获取10个字符的用户输入并将其存储到数组中,然后使用冒泡排序技术按升序对其进行排序。但每当我执行代码时(在蓝色j环境中),每个语句都会跳过输入,只运行我想要的一半。 这是代码:
jQuery(document).ready(function() {
$("#check_uncheck").change(function() {
if ($("#check_uncheck:checked").length) {
$(".checkboxes input:checkbox").prop("checked", true);
} else {
$(".checkboxes input:checkbox").prop("checked", false);
}
})
});
答案 0 :(得分:0)
如果用户总是输入换行符分隔的字符,您只需读取换行符(s?)并丢弃它们:
1:25
如果需要,可以通过检查System.lineSeparator()
是什么来使代码可移植。
如评论所述,如果要在同一行(即for(i=0;i<10;i++)
{
arr[i] = (char)br.read();
//br.read() //discards the CR character, only needed on Windows platforms
br.read() //discards the LF character
}
)输入所有字符,您当前的代码也可以被认为是正确的。
答案 1 :(得分:0)
Updated
:根据使用读者是强制性的事实,您的来源可能如下:
import java.io.*;
import java.util.Arrays;
public class p19 {
public static void main(String... args) throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
char[] arr = new char[10];
int i = 0;
System.out.println("Enter characters");
while(i < 10) {
String line = br.readLine();
for (int x = 0 ; x < line.length() && i < 10 ; x++) {
char chr = line.charAt(x);
//accept only viewable symbols:
if (chr >= 0x30 && chr < 0xA0) {
arr[i++] = chr;
}
}
}
System.out.println("Got array: " + Arrays.toString(arr));
//there are exists simplier sample of bubble sort:
for(i = 0 ; i < arr.length ; i++) {
for(int j = 0 ; j < arr.length - 1 - i ; j++) {
if(arr[j] > arr[j + 1]) {
char big = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = big;
}
}
}
System.out.println("Sorted array: " + Arrays.toString(arr));
for(i = 0 ; i < 10 ; i++) {
System.out.println(arr[i]);
}
}
}
PS我为Arrays.toString
的数组添加了更详细的输出 - 如果你不应该使用这样的类,你可以省略。