一个题目做了好久,java,想说爱你不容易!

iPhone用户必看:TrollStore巨魔商店在线安装保姆级教程(iOS 14-16.6.1适用) 本文为iOS 14至16.6.1系统的iPhone用户提供了一份详细的TrollStore(巨魔商店)在线安装教程。文章从核心原理、安装前准备讲起,逐步详解了通过Safari浏览器获取安装器、信任企业证书、部署TrollStore及关键后置配置的全过程,并附带了常见问题排错指南,帮助用户安全、高效地实现无需越狱安装第三方应用。 阅读详情

做这道题的时候,思路不太正确刚开始的时候,想的是把学生对象和总分当做键值对存储,后来发现不对,可以直接让学生类具有比较性,然后复写compareTo方法

直接在compareTo方法中对总分进行比较也可以,如果总分相等那么就比较名字,其实list集合就可以实现,把学生类对象存入到list集合,然后用工具类Collections的

sort方法,调用的是自定义的排序方式,然后将list集合中的学生类对象迭代存入到文件。。。。但是在这里又被卡主了,发现写的是学生类对象的哈希值,mygod,,,

然后参阅了毕老师的例子,发现在学生类中还要复写toString方法,。。。。折腾了好几个小时。。。

其实这道题也没有那么难,只是自己太渣了,反过来再看这道题,考查的知识点有:键盘录入    切割  类型转换(String到Double的转换) 然后就是排序   再然后就是

将集合中的对象写入到文件,   以后一定要注意这个toString了


package com.itheima;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Test2 {
/*2、 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序
 * 接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),
 * 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。
 * 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。*/
	public static void main(String[] args) throws IOException {
		ArrayList<Student> list = new ArrayList<Student>();
		System.out.println("请输入学生信息,以逗号隔开:");
		Scanner sc = new Scanner(System.in);
		while(sc.hasNextLine())
		{
			String str = sc.nextLine();
			if("over".equals(str))
			{
				break;
			}
			String[] dataIn = str.split(",");
			//System.out.println(dataIn.length);
			String name = dataIn[0];
			//System.out.println(name);
			double Chinese = Double.parseDouble(dataIn[1]);
			double Math = Double.parseDouble(dataIn[2]);
			double English = Double.parseDouble(dataIn[3]);				
			double sum = Chinese+Math+English;
			Student stu = new Student(name,Chinese,Math,English,sum);
			//System.out.println("name:"+stu.getName()+" Chinese:"+Chinese+" Math"+Math+" English:"+English+" sum:"+sum);
			
			list.add(stu);				
		}
		sc.close();
		Collections.sort(list);
		@SuppressWarnings("resource")
		FileWriter fw= new FileWriter("e:\\stu.txt");
		for(Student s : list)
		{
			fw.write(s.toString()+"\r\n");
			fw.flush();
		}
		
	}
}
class Student implements Comparable<Student>{
	private String name;
	private double Chinese;
	private double Math;
	private double English;
	private double sum;
	public Student(String name,double Chinese,double Math,double English,double sum){
		this.setName(name);
		this.setChinese(Chinese);
		this.setMath(Math);
		this.setEnglish(English);
		this.setSum(sum);
	}
	public String toString(){
		return "student["+name+", "+Chinese+", "+Math+", "+English+","+"  总分:"+sum+"]";
	}
	@Override//覆盖比较方法,如果总成绩相同则按照姓名排序。
	public int compareTo(Student stu) {
		int num=0;
		num = (int) (stu.getSum()-this.getSum());
		if(num==0)
		{
			return this.name.compareTo(stu.name);
		}
		return num;
		
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getChinese() {
		return Chinese;
	}
	public void setChinese(double chinese) {
		Chinese = chinese;
	}
	public double getMath() {
		return Math;
	}
	public void setMath(double math) {
		Math = math;
	}
	public double getEnglish() {
		return English;
	}
	public void setEnglish(double english) {
		English = english;
	}
	public double getSum() {
		return sum;
	}
	public void setSum(double sum) {
		this.sum = sum;
	}
}


Qt Quick/QML入门到精通_专栏demo对应文章目录(目前50个左右demo/长期更新) 自定义图标下拉列表框的效果如下所示:自定义三态按钮的效果如下所示:传送门:53.qt quick-自定义三态按钮、自定义图标下拉列表框_诺谦的博客-优快云博客传送门:59.qt quick-qml调色板(颜色取色器)实现、自定义QQuickStyle样式_诺谦的博客-优快云博客63.qt quick-QML侧边滑动栏(不需要任何图片资源,支持自定义左右方向和大小)_诺谦的博客-优快云博客_qt实现好看侧边栏。... 阅读详情

相关推荐

Marin说PCB之LPDDR5的布线注意事项--01

以上就是本期所有内容了,有些是通用的LPDDR5的设计准则,有的是针对单板的设计规则,严格意义说是没有哪一种规则是完全适用的LPDDR5的 通用规则的,不同的单板可能板厚,板材,层数,SOC以及DDR的型号都是不同的,一般的做法就是严格按照SOC手册上的LPDDR5的要求加上仿真同事给的建议修改优化就好了,我们下期文章不见不散。我们知道想要做好一个LPDDR颗粒,需要考虑的是因素有很多例如,电源完整性,信号完整性,层叠的设计,布局的摆放,布线的合理规划,去耦电容的摆放等等。

weixin_45223454的博客 3161

有五个学生,每个学生有3门课的成绩, 从键盘输入以上数据(包括姓名,三门课成绩), 输入的格式:如:zhagnsan,30,40,60计算出总成绩, 并把学生的信息和计算出的总分数高低顺序存放在磁盘文

有五个学生,每个学生有3门课的成绩, 从键盘输入以上数据(包括姓名,三门课成绩), 输入的格式:如:zhagnsan,30,40,60计算出总成绩, 并把学生的信息和计算出的总分数高低顺序存放在磁盘文件"stud.txt"中。 1:定义一个描述学生的类 2定义一个操作学生的工具类

zhanggf的博客 1万+

ADS 使用教程(十八)Encrypting Designs using RFIP Encoder in ADS

在这一节,我们使用RFIP Encoder进行设计加密,这是一种保护知识产权和敏感设计数据的重要方法。RFIP Encoder提供了一种安全的方式来加密设计文件,确保只有授权人员能够访问和使用这些文件。

Dirge19的博客 1169

java之compareto方法的介绍与TreeSet的使用

原文出处:https://www.cnblogs.com/destiny1123/articles/4262302.html java中的compareto方法的详细介绍 javacompareTo java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值,看下面一组代码 String a="a",b="b"; System.out.println(a.compare...

weixin_41796049的博客 852

从ST电机库到TI InstaSPIN:手把手对比两种主流FOC实现中的坐标变换差异

本文深入对比了ST电机库与TI InstaSPIN在FOC实现中的坐标变换差异,包括坐标系定义、变换系数和角度处理等关键点。针对BLDC和PMSM电机控制,提供了从理论到实践的移植方案,帮助工程师快速解决平台切换中的性能问题。特别解析了Clarke/Park变换在两种实现中的微妙差异及其对PI控制的影响。

weixin_28724661的博客 398

光模块基础知识【快速入门】02

光模块是用于交换机与设备之间传输的载体,是光纤通信系统中的核心器件。主要作用是发射端将设备的电信号转换成光信号。 光纤通道光模块和以太网光模块 光纤通道光模块 光纤通道(FC, Fiber Channel)是一种高速网络数据传输协议。光纤通道协议可以有序无损地传输原始数据,它主要用于在数据中心、电脑服务器、交换机与存储网络中进行数据传输。 FC光模块遵循FC协议,充当着光纤通道系统之间的接口,也是光纤存储网络设备间的接口。它们主要用于数据中心的光纤通道存储网络链接中。 FC光模块具有小型化和低.

Jin Hanquan的博客 3万+

Java中解决compareTo()方法不可以比较中文的问题

问题:使用compareTo()方法,比较list集合中student对象的属性(中文姓名)进行list集合排序,发现未报错,但排序失败; class Student implements Comparable<Student>{ @Override public int compareTo(Student stu) { return this.name.compareTo(stu.getName()); //升序 } } 解决办法: 如下:定

诗琪芮的博客 2070

避开STM32H7的‘保护陷阱’:从Option Byte机制深度解析读写保护原理与预防

本文深度解析STM32H723VGT6的Option Byte保护机制,详细讲解RDP读保护和WRP写保护的工作原理及配置方法,并提供硬件设计防御策略和软件预防性编程技巧,帮助开发者避免误触发保护机制导致芯片锁定的问题。

weixin_33686714的博客 441

Java高级特性之CompareTo(一)

package three.day.newcharacter; import java.util.Arrays; public class CompareToDemo01 { public static void main(String[] args)  { Student2 stu[] = new Student2[4]; stu[3] = new Stud

QQ1130141391的专栏 1134

QGIS三维地形可视化实战:从DEM数据到炫酷3D场景(附Qgis2threejs插件配置)

本文详细介绍了如何利用QGIS和Qgis2threejs插件,将DEM数据转化为交互式三维地形场景的完整工作流。核心内容包括DEM数据准备、坐标系选择(重点对比WGS 84与UTM的差异及影响)、插件核心参数配置、卫星影像与等高线叠加等进阶技巧,并提供了成果导出与常见问题解决方案,帮助用户高效创建可用于网页展示的炫酷3D可视化成果。

mqtt6iot的博客 875

433MHz无线通信避坑指南:如何解决信号干扰和误码问题

本文深入探讨433MHz无线通信中的信号干扰和误码问题,提供从射频前端设计到协议优化的全链路解决方案。通过天线匹配、电源噪声抑制、曼彻斯特编码改进及实时频点切换等技术,显著提升通信稳定性和距离。适合智能家居和工业无线控制系统的开发者参考。

weixin_29288313的博客 415

.NET, 想说爱你不容易

微软的.NET框架从诞生至今应该有四年多了吧?这四年是怎样的四年?微软又在多大程度上达到了当初所憧憬的美丽蓝图?我不敢说我对.NET有多么深的了解,但是我似乎越来越发现微软已逐渐背离了最初的美好愿望,或者说,背离了早期力推.NET技术时在广大开发人员中树立的美好图景?通常,一个好的点子,或者说一套先进的想法,加上微软这样的公司,我们似乎没有必要怀疑它的成功。我们倾向于这样看待微软的产品

1万+

NAS新玩法!豆瓣与迅雷结合,轻松实现自动下载电影自动追剧功能

NAS新玩法!豆瓣与迅雷结合,轻松实现自动下载电影自动追剧功能

XiaoqiangClub的博客 6386

RabbitMQ,想说爱你不容易(附详细安装教程)

掌握了AMQP模型就掌握了RabbitMQ

zwx900102的博客 2807

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

1 Java,想说爱你不容易

作为初识Java的小菜鸟一枚,渴望通过写博客从最基础,最low,最简单化,一步步深入,同时希望得到各位同行博主大神们给我以及和我一样,刚刚步入Java大世界的小小鸟们更多的指点和帮助。未来的Java之路还很长很长,贵在坚持,学习编程思想,分享学习心得。 小小鸟终有一天,也会长出翅膀。

qq_33169644的博客 306

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

HBase,想说爱你不容易啊!

2013年 DB-Engines的数据库人气排行榜 :     如此看来即使HBase最后可以成为NoSQL领域的领军者,这条成功路上也是遍地荆棘。 优点: 从开发者角度上来看,HBase提供的强一致性会让开发过程变得轻松。而这里对于最终一致性存在的误区就是:它改善的是写入的速度——持续的写操作可能会造成延迟,为了保持最终一致性付出了代价,却没有达到应有的效果。 基本

很多时候,你缺少的不是知识而是热情 1564

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

软件测试,想说爱你不容易

一不留神,毕业后在软件公司里已经工作七年多了。期间经历了民企、国企、美国硅谷小外企和大型外企,做过正规软件开发(团队规模10人以上,有产品经理、开发人员、测试人员、文档工程师,客户为Cisco,出过2个以上的版本,代码量在20万行以上),功能测试、性能测试、测试自动化、测试辅助工具开发、国际化测试、本地化测试、兼容性测试、第三方测试、测试团队管理,对软件测试的理解也逐渐深入。特写下以下文字与大家分

Aric的专栏 898

Java 10 想说爱你不容易

没有跳票的Java10 如约而至,反而让人有点不习惯了,那这次的版本迭代能否给开发者带来惊喜呢?局部变量类型推断Java 7 引入了菱形操作符: List<String> list = new ArrayList<>(); 这个类型推断使得我们可以省略部分重复操作,但是还需要很多看似重复的代码。为此,Java 10 引入了var 变量来减少冗余。 于是乎,你可以写这样的代码: var l

随-记的专栏 486

IT——想说爱你不容易

       很早就来公司了,××地市的电信自动电子工单管理系统系统出了点问题,所有的工单都不做了,那就意味着这个地市的开户停机等等业务就都做不了了。因为系统已经运行大概2年了,平时问题也有不少,但是还是第一次遇到这样的问题,更要命的是接触这个系统的人现在已经走的差不多了,我一个来公司还不到一年的员工已经接手了两个项目的后期开发和在线系统的维护工作,说轻松也很轻松,说不轻松那就是听到电话头就大了。

IT有个圈儿 1626

Java循环:想说爱你不容易

美国的joshua bloch讲了很多java谜题,今天和大家一起分享。 0 循环者引题 请写一个变量声明,将它置于下面的循环之前,使得该循环成为无限循环。 for (int i =start; i 1 循环者 什么样的声明能让下面的循环是无限循环? while(i == i + 1){ } 2 循环者的新娘 提供一个对i的声明,使下面的循环是无限循环。 while(i != i

javazhuanzai的专栏 316

haxe,想说爱你不容易

看过我前一篇文章的朋友,应该对haxe已经有所了解了。(如果你还不知道haxe是什么,赶紧去看看吧“haxe 移动设备跨平台开发”) haxe如此强大,可是8年了,它却默默无闻。8年啊,抗日都成功了,haxe为啥还没脱颖而出? haxe的埋没,我想主要归结为以下几点:   1. haxe是一个开源语言 开源的,基本靠大家的兴趣去推动它。资金上完全无法和商业化的语言(例如C#, java)

Programming & Art 1万+

CTO!想说爱你不容易

今天,咱们扩展下,继续聊聊CTO的事儿 “我有一个绝妙的创意和一个靠谱的团队,就差一个写代码的了” “创业公司没钱,最开始来写代码就给个名分,叫CTO吧!” “大公司的技术总监到小公司就能做CTO啦” 中生代小白 看到网站上你们招CTO,需要些啥条件? 某CEO 没什么要求啦,简单的几点 文能设计定需求,武可写码做架构; 进做招商引融资,退做大V...

weixin_34220963的博客 230

Java 想说爱你不简单

今天忙了一整天,刚刚经历了一个很是头疼的考试,考的那叫一个惨啊,嗨 , 不说了,都是泪啊,还是说说最近Java学习的情况吧,本人在校学生,对自己专业不太满意,所以在大二的时候就开始自己琢磨着学习些其他的知识,毕竟是对自己的专业实在是不抱有什么希望了,说明一下啊,本人不是什么不好好学习的人,作为一个在校大学生,我深知应该做好自己的本分,但是,亲们,我的专业是金属材料啊,高中的时候听懂个狗屁,就随便的

qq_32224789的博客 379

java集合类,想说爱你不容易

441

想说爱你不容易

以前一直想要成为一名游戏制作人,特别崇拜宫本茂小岛秀夫。进了一家公司,做的不错,却黯然离开。制作人之梦破碎,走之前将自己写的一份策划案给了同事,他进了一家大的游戏公司。 后来上了程序员这条贼船,开始想做游戏3D程序。崇拜的对象也转变为了大神卡马克和云风。辛苦的自学,终于获得了机会,却临时选择了Unity3D。背井离乡来到京城,家乡一家游戏公司却找到了我,而我却已安顿完毕。 再后来想要通过U3D

游戏开发 745
上一篇: 关于java中的static和final的总结
下一篇: 安卓中多线程断点续传文件下载核心代码总结
杨鑫校
博客等级 码龄11年 24粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值