我的文件包含n行整数。我想在每行中添加每个int并打印它们(因此我应该在末尾打印3个int,每行一个一行)。
我尝试过此操作,但是它将在第一个循环中读取并添加所有Integer。
scan = new Scanner(new BufferedReader(new FileReader("input.txt")));
int n = scan.nextInt();
for (int i = 0; i < n; i++) {
while (scan.hasNextLine()) {
sum += scan.nextInt();
}
System.out.println(sum);
sum = 0;
}
答案 0 :(得分:2)
此行为是由于错误使用循环和扫描引起的。 一种正确的解决方案还结合了Java 8 lambda,并假定文件中整数的定界符为space(“”):
Path path = Paths.get("your path");
try{
Files.lines(path)
.map( line -> line.split(" "))
.mapToInt( numbers -> Arrays.stream(numbers)
.reduce(0 , (sum, num) -> sum + Integer.parseInt(num), (first, second) -> first + second ))
.forEachOrdered(System.out::println);
} catch (IOException e){
e.printStackTrace();
}
答案 1 :(得分:0)
我想我也可以这样做...
public class MainActivity extends AppCompatActivity {
Button btn;
EditText edt1,edt2;
ListView itemsListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button) findViewById(R.id.add_id);
edt1=(EditText) findViewById(R.id.credit_id);
edt2=(EditText) findViewById(R.id.gpa_id);
itemsListView = (ListView)findViewById(R.id.list_view_items);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CustomListAdapter adapter = new
CustomListAdapter(MainActivity.this, generateItemsList());
itemsListView.setAdapter(adapter);
edt1.setText("");
edt2.setText("");
}
});
}
private ArrayList<Item> generateItemsList() {
String itemName=edt1.getText().toString();
String itemDescription=edt2.getText().toString();
ArrayList<Item> list= new ArrayList<>();
Item item=new Item(itemName,itemDescription);
item.getItemName();
item.getItemDescription();
list.add(item);
return list;
}
}