import java.io.*;
import java.util.*;
public class St {
ArrayList al;
St(){
al= new ArrayList();
}
void add(String s){
al.add(s);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
St stt = new St();
DataInputStream dis = new DataInputStream(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入学生编号的个数");
int num=dis.read();
for(int i=0;i<num;i++)
{
System.out.println("第"+(i+1)+"个学生的编号");
stt.add(br.readLine());
System.out.println(stt.al.get(i).toString());
}
}catch(IOException e){e.printStackTrace();}
}
}//question1,循环怎么停下来 how to make it stop
//question2,怎么循环开始会出现两个输入 what's happens in the begin of scope
import java.util.*;
public class St {
ArrayList al;
St(){
al= new ArrayList();
}
void add(String s){
al.add(s);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
St stt = new St();
DataInputStream dis = new DataInputStream(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入学生编号的个数");
int num=dis.read();
for(int i=0;i<num;i++)
{
System.out.println("第"+(i+1)+"个学生的编号");
stt.add(br.readLine());
System.out.println(stt.al.get(i).toString());
}
}catch(IOException e){e.printStackTrace();}
}
}//question1,循环怎么停下来 how to make it stop
//question2,怎么循环开始会出现两个输入 what's happens in the begin of scope
你的dis.read()读到的是一个字符(正好一个字节),返回的是它的Ascii码值,不是循环不结束,而是几十次,减掉48就得到你想要的。
//question2,怎么循环开始会出现两个输入 what's happens in the begin of scope
i=0时,br.readline读到上次的回车,并在al中添加"",所以就出现了你所看到的情况。DataInputStream dis = new DataInputStream(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
为什么要两个?去掉一个。