java 求 问 怎么在选定的日期内得到最合适的酒店程序

图片说明

3个回答

就是一些if判断,这个很简单

看完需求,我大体思路如下:

一 需要抽象的对象:客户等级,客户等级价格,酒店,酒店销售策略,酒店星级,一周天数区间(因为是一周某几天对应一个价格,所以区间是一个对象)
二 以上对象的关系大体应该如下:
酒店应该有多种销售策略,因为工作日和周末的销售价格不一样,因此
图片说明

销售策略应该包含一个天数区间和多个客户等级价格,因为某一个策略对应的是一周的几天,并且不同的客户等级对应的价格也不一样,因此
图片说明

客户等级价格,应该包含一个客户等级和一个对应的价格,比如会员50元,普通客户100元,因此
图片说明

天数区间应该包含多个天数
图片说明

三.根据以上抽象的对象可以大体总结如下计算最优酒店的算法思路。
-输入:客户等级,开始时间,结束时间
-输出:酒店
1. 循环所有酒店,根据开始时间和结束时间还有客户等级算出每个酒店对应的价格,并且按照价格由低到高排序
2. 再按照酒店星级由高到低排序
3. 最后取第一个酒店即可

四.代码如下(代码主要采用Java8的流和新时间API,代码风格可能比较飘逸,请记得把JDK升到8)

测试类:

 public class HotelTest {

    public static void main(String[] args) {
        test(CustomerLevel.NORMAL, LocalDate.of(2009, 3, 16), LocalDate.of(2009, 3, 18));
        test(CustomerLevel.VIP, LocalDate.of(2016, 7, 31), LocalDate.of(2016, 8, 02));
    }

    public static void test(CustomerLevel customerLevel, LocalDate startDate, LocalDate endDate){
        Hotel hotel = HotelSelector.chooseCheapest(customerLevel, startDate, endDate);
        System.out.println(customerLevel.getName() + " " + startDate + "-" + endDate + "的最终选择的酒店:" + hotel.getName());
    }
}

执行结果:

图片说明

主体代码依次如下:

酒店类:

 @Getter
@AllArgsConstructor
public enum Hotel {

    // 如家
    HomeInn("如家", HotelStar.THREE, Arrays.asList(
            SaleStrategy.days(DaysInterval.wordDays).customerLevelPrices(
                    CustomerLevelPrice.level(CustomerLevel.NORMAL).price(110), CustomerLevelPrice.level(CustomerLevel.VIP).price(80)),
            SaleStrategy.days(DaysInterval.weekend).customerLevelPrices(
                    CustomerLevelPrice.level(CustomerLevel.NORMAL).price(90), CustomerLevelPrice.level(CustomerLevel.VIP).price(80))
    )),
    // 七天
    SevenDaysInn("七天", HotelStar.FOUR, Arrays.asList(
            SaleStrategy.days(DaysInterval.wordDays).customerLevelPrices(
                    CustomerLevelPrice.level(CustomerLevel.NORMAL).price(160), CustomerLevelPrice.level(CustomerLevel.VIP).price(110)),
            SaleStrategy.days(DaysInterval.weekend).customerLevelPrices(
                    CustomerLevelPrice.level(CustomerLevel.NORMAL).price(60), CustomerLevelPrice.level(CustomerLevel.VIP).price(50))
    )),
    // 汉庭
    HanTing("汉庭", HotelStar.FIVE, Arrays.asList(
            SaleStrategy.days(DaysInterval.wordDays).customerLevelPrices(
                    CustomerLevelPrice.level(CustomerLevel.NORMAL).price(210), CustomerLevelPrice.level(CustomerLevel.VIP).price(100)),
            SaleStrategy.days(DaysInterval.weekend).customerLevelPrices(
                    CustomerLevelPrice.level(CustomerLevel.NORMAL).price(150), CustomerLevelPrice.level(CustomerLevel.VIP).price(40))
    )),
    ;

    // 酒店名字
    private String name;

    // 酒店星级
    private HotelStar hotelStar;

    // 酒店的销售策略集合
    private List<SaleStrategy> saleStrategies;

    public Integer getHotelStarValue(){
        return this.hotelStar.getStarValue();
    }

    /**
     * 根据一个集合的天数和客户等级算出所有天数该酒店的价格和
     * @param dayOfWeekStream
     * @param customerLevel
     * @return
     */
    public Integer getPrice(Stream<DayOfWeek> dayOfWeekStream, CustomerLevel customerLevel){
        return dayOfWeekStream.map(dayOfWeek -> this.getPriceByDayOfWeek(dayOfWeek, customerLevel)).reduce(Integer::sum).get();
    }

    /**
     * 根据当前的天数和客户等级,获取这一天,这个酒店的价格
     * @param dayOfWeek
     * @param customerLevel
     * @return
     */
    private Integer getPriceByDayOfWeek(DayOfWeek dayOfWeek, CustomerLevel customerLevel){
        return this.saleStrategies.stream().filter(saleStrategy -> saleStrategy.getDaysInterval().contain(dayOfWeek))
                                           .findFirst()
                                           .map(saleStrategy -> saleStrategy.getCustomerLevelPrice(customerLevel))
                                           .map(CustomerLevelPrice::getPrice)
                                           .get();
    }
}

酒店星级:

 @Getter
@AllArgsConstructor
public enum HotelStar {

    ONE(1),
    TWO(2),
    THREE(3),
    FOUR(4),
    FIVE(5);

    private Integer starValue;
}

酒店销售策略:

 @Getter
@Setter
public class SaleStrategy {

    // 当前销售策略适应的天数区间
    private DaysInterval daysInterval;

    // 不同客户等级对应的价格集合
    private List<CustomerLevelPrice> customerLevelPrices;

    public static SaleStrategy days(DaysInterval daysInterval){
        return new SaleStrategy(daysInterval);
    }

    public SaleStrategy customerLevelPrices(CustomerLevelPrice ... customerLevelPrices){
        this.customerLevelPrices = Arrays.asList(customerLevelPrices);
        return this;
    }

    public CustomerLevelPrice getCustomerLevelPrice(CustomerLevel customerLevel){
        return this.customerLevelPrices.stream().filter(customerLevelPrice -> customerLevelPrice.getCustomerLevel().equals(customerLevel)).findFirst().get();
    }

    private SaleStrategy(DaysInterval daysInterval) {
        this.daysInterval = daysInterval;
    }
}

天数区间:

 public class DaysInterval {

    // 包含的一周哪些天
    private List<DayOfWeek> days;

    // 工作日区间(包括周一,周二,周三,周四,周五)
    public static DaysInterval wordDays = of(DayOfWeek.MONDAY, DayOfWeek.TUESDAY, DayOfWeek.WEDNESDAY, DayOfWeek.THURSDAY, DayOfWeek.FRIDAY);

    // 周末区间(包括周六,周日)
    public static DaysInterval weekend = of(DayOfWeek.FRIDAY, DayOfWeek.SUNDAY);

    public static DaysInterval of(DayOfWeek ... dayOfWeeks){
        return new DaysInterval(Arrays.asList(dayOfWeeks));
    }

    public boolean contain(DayOfWeek dayOfWeek){
        return this.days.contains(dayOfWeek);
    }

    private DaysInterval(List<DayOfWeek> days) {
        this.days = days;
    }
}

客户等级价格:

 @Getter
public class CustomerLevelPrice {

    // 客户等级
    private CustomerLevel customerLevel;

    // 对应的价格
    private Integer price;

    public static CustomerLevelPrice level(CustomerLevel customerLevel){
        return new CustomerLevelPrice(customerLevel);
    }

    public CustomerLevelPrice price(Integer price){
        this.price = price;
        return this;
    }

    private CustomerLevelPrice(CustomerLevel customerLevel) {
        this.customerLevel = customerLevel;
    }
}

客户等级:

 @Getter
@AllArgsConstructor
public enum CustomerLevel {
    // 普通客户
    NORMAL("普通客户"),
    // VIP客户
    VIP("会员客户");

    private String name;
}

酒店选择器:

 public class HotelSelector {

    /**
     * 根据当前客户级别,和客户准备入住酒店的开始时间和结束时间,筛选出当前最便宜的酒店
     * @param customerLevel
     * @param startDate
     * @param endDate
     * @return
     */
    public static Hotel chooseCheapest(CustomerLevel customerLevel, LocalDate startDate, LocalDate endDate){
        return Arrays.stream(Hotel.values())
                     // 先按照每个酒店的最终价格升序排列
                     .sorted(Comparator.comparing((Hotel hotel) -> hotel.getPrice(createStream(startDate, endDate), customerLevel))
                             // 若价格相等,再按照每个酒店的星级降序排列
                             .thenComparing(Comparator.comparing(Hotel::getHotelStarValue).reversed()))
                     // 排列后取第一个即可
                     .findFirst().get();

    }

    /**
     * 将入店开始时间和离店时间转化为天数的流,方便后续计算
     * @param startDate
     * @param endDate
     * @return
     */
    public static Stream<DayOfWeek> createStream(LocalDate startDate, LocalDate endDate){
        return Stream.iterate(startDate, localDate -> localDate.plusDays(1))
                     .limit(ChronoUnit.DAYS.between(startDate, endDate) + 1)
                     .map(LocalDate::getDayOfWeek);
    }
}

五. 之所以有这么多的类,主要方便扩展,当前可快速扩展的点有:
1.销售区间可扩展,可自由选择周一到周末的任意几天为天数区间
2.客户等级可扩展,可扩展普通用户,黄金用户,白金用户等,不同用户也可以设置不同的价格

最后,本来代码在idea里写的挺漂亮的,不知道贴出来看着却这么丑...哎...

这个我觉的如果要实现完全达到自动化,这可能需要使用大数据知识让程序自动去判断吧!!!!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求问一个关于在某一段日期内查询的语句!!
我现在有如下表:rntable: voyagernfields: voy_no etarn SSS 20050102rn XXX 20041202rn TTT 20051108rnrn我想查询在给定的两个时间参数内的航次,应该如何写?rn谢谢各位大侠赐教!!!!!
日期内数据查询问题
看一个资料求一段时间内的数据rn string DateTimeBegin = txt1.Text.ToString().Trim();rn string DateTimeEnd =txt2.Text.ToString().Trim();rnrn DateTimeEnd = (Convert.ToDateTime(DateTimeEnd.ToString().Trim()).AddHours(24).ToString("yyyy-MM-dd")).ToString().Trim();rnstrWhere += " and ( DateBegin >= '" + DateTimeBegin + "' and DateBegin <= '" + DateTimeEnd + "' ) ";rnrn问一下,为什么结束时间要.AddHours(24)这样做有什么用rn
选择一段日期内的每一天
最近在完成一个小项目时,碰到要取一个月部份日期的问题,经过一番努力后终于完成了。由于学习才刚刚学习java,不足之处还请指正。 实现的功能有:1. 根据输入的日期,返回当前月份的每一天。 2.根据输入的日期,返回昨天的日期。 3.返回当前日期的月份天数
java流怎么close最合适
ByteArrayInputStream ed=new ByteArrayInputStream(new byte[]1,2);rnInputStream ed1=ed;rnDataInputStream ed2=new DataInputStream(ed1);rnrn关闭rned.close();rned1.close();rned2.close();rn这样才算完全close。rn还是只要随便close其中一个就可以了。rn这里只是一个例子,比如封装文件流的时候,都一样,怎么关闭处理最重要。
求某段日期内的租金(或月数),请指教。
表A:rn房屋ID 出租开始时间 结束时间 租金rnID BeginDate EndDate MonthValuern1 2008-01-13 2010-05-01 500rn2 2009-05-05 2009-06-03 1000rn3 2009-03-05 2010-11-01 800rn4 2010-05-01 2010-11-01 1200rn2 2010-01-05 2010-08-03 1000rnrnrn现在想统计2009每间房租金共有多少? 如果知道了2009年出租了几个月就乘于租金也行。rnrn
MySQL数据库获取一段日期内某个时间段
前一段时间在项目中需要查询一个月内一个时间点到另一个时间点的数据,刚开始真的是没有什么头绪,然后就在晚上开始找,最后找到了一个MySQL数据库中自带的函数DATE_FORMAT然后就有了如下的代码: /// &lt;summary&gt; /// 查询本月8点之前的番茄总数量 /// &lt;/summary&gt; ...
求对称日程序
编写了一个求对称日的算法,输出所有的对称日,如20111102
输入一段日期内的休息日和法定节假日
查询单日的有个现成的接口http://api.goseek.cn/  返回数据:工作日对应结果为 0, 休息日对应结果为 1, 节假日对应的结果为 2要做的就是生成一年的日期,然后逐个去判断校验了.具体的代码如下,实现的是输入一个时间段,能返回时间段内的休息日和节假日.里面有冗余的,没做修改,先这样吧#coding:utf-8 import json import urllib2 import ...
SQL如何查找一段日期内的数据
如题,是日期,不包括时间。rn不要是这样的:select * from T_BuyDetails where DateTime between '2011-5-20' and '2011-5-28' 这查找出来结果是不符合的。 DateTime 字段里的日期都是带 时间(分秒)这些小尾巴的。。。。。。
如何对一段日期内的相关数据统计
管理系统突出问题
如何计算两段日期内的天数
如何计算两段日期内的天数rn可以变成Calendar类,不知道如何计算它们之间的天数!
获取两个日期内的所有时间
//获取两日期之间日期列表函数 getDuringDate(stime,etime){ console.log(&quot;我是开始和结束的时间&quot;,stime,etime); //初始化日期列表,数组 this.abscissa = []; let i=0; //开始日期小于等于结束日期,并循环 while(stime&amp;lt;=etime)...
js返回一段日期内的所有星期天
比如说我想查2008-04-01至2008-04-23间的所有是星期天的日期,那么这两个日期间的所有星期一就是:2008-04-06,2008-04-13,2008-04-20。同理可查星期一至星期六。rnjs如何实现这样的效果呢rnrn
计算任意2个日期内的工作日
package com.archie2010.test;rnimport java.text.SimpleDateFormat;rnimport java.util.Calendar;rnimport java.util.Date;rn/**rn * 计算任意2个日期内的工作日(没有考虑到国定假日)rn * rn * @author userrn * rn */rnpublic class DateCal rn /**rn * @param argsrn */rn public static void main(String[] args) rn try rn String strDateStart = "2010-12-1";rn String strDateEnd = "2010-12-14";rn SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");rn Date date_start = sdf.parse(strDateStart);rn Date date_end = sdf.parse(strDateEnd);rn DateCal app = new DateCal();rn Calendar cal_start = Calendar.getInstance();rn Calendar cal_end = Calendar.getInstance();rn cal_start.setTime(date_start);rn cal_end.setTime(date_end);rn System.out.println("星期-->" + app.getChineseWeek(cal_start)rn + " 日期-->" + cal_start.get(Calendar.YEAR) + "-"rn + (cal_start.get(Calendar.MONTH) + 1) + "-"rn + cal_start.get(Calendar.DAY_OF_MONTH));rn System.out.println("星期-->" + app.getChineseWeek(cal_end) + " 日期-->"rn + cal_end.get(Calendar.YEAR) + "-"rn + (cal_end.get(Calendar.MONTH) + 1) + "-"rn + cal_end.get(Calendar.DAY_OF_MONTH));rn System.out.println("工作日为-->"rn + app.getWorkingDay(cal_start, cal_end));rn System.out.println("休息日-->" + app.getHolidays(cal_start, cal_end));rn catch (Exception e) rn rn rn public int getDaysBetween(java.util.Calendar d1, [url=http://bbs.189works.com/][color=#000000]Java[/color][/url].util.Calendar d2) rn if (d1.after(d2)) // swap dates so that d1 is start and d2 is endrn java.util.Calendar swap = d1;rn d1 = d2;rn d2 = swap;rn rn int days = d2.get(java.util.Calendar.DAY_OF_YEAR)rn - d1.get(java.util.Calendar.DAY_OF_YEAR);rn int y2 = d2.get(java.util.Calendar.YEAR);rn if (d1.get(java.util.Calendar.YEAR) != y2) rn d1 = (java.util.Calendar) d1.clone();rn do rn days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);rn d1.add(java.util.Calendar.YEAR, 1);rn while (d1.get(java.util.Calendar.YEAR) != y2);rn rn return days;rn rn /**rn * 计算2个日期之间的相隔天数rn * rn * @param d1rn * @param d2rn * @returnrn */rn public int getWorkingDay(java.util.Calendar d1, java.util.Calendar d2) rn int result = -1;rn if (d1.after(d2)) // swap dates so that d1 is start and d2 is endrn java.util.Calendar swap = d1;rn d1 = d2;rn d2 = swap;rn rn int betweendays = getDaysBetween(d1, d2);rn int charge_date = 0;rn int charge_start_date = 0;// 开始日期的日期偏移量rn int charge_end_date = 0;// 结束日期的日期偏移量rn // 日期不在同一个日期内rn int stmp;rn int etmp;rn stmp = 7 - d1.get(Calendar.DAY_OF_WEEK);rn etmp = 7 - d2.get(Calendar.DAY_OF_WEEK);rn if (stmp != 0 && stmp != 6) // 开始日期为星期六和星期日时偏移量为0rn charge_start_date = stmp - 1;rn rn if (etmp != 0 && etmp != 6) // 结束日期为星期六和星期日时偏移量为0rn charge_end_date = etmp - 1;rn rn // rn result = (getDaysBetween(this.getNextMonday(d1), this.getNextMonday(d2)) / 7)rn * 5 + charge_start_date - charge_end_date;rn // System.out.println("charge_start_date>" + charge_start_date);rn // System.out.println("charge_end_date>" + charge_end_date);rn // System.out.println("between day is-->" + betweendays);rn return result;rn rn public String getChineseWeek(Calendar date) rn final String dayNames[] = "星期日", "星期一", "星期二", "星期三", "星期四", "星期五",rn "星期六" ;rn int dayOfWeek = date.get(Calendar.DAY_OF_WEEK);rn // System.out.println(dayNames[dayOfWeek - 1]);rn return dayNames[dayOfWeek - 1];rn rn /**rn * 获得日期的下一个星期一的日期rn * rn * @param datern * @returnrn */rn public Calendar getNextMonday(Calendar date) rn Calendar result = null;rn result = date;rn do rn result = (Calendar) result.clone();rn result.add(Calendar.DATE, 1);rn while (result.get(Calendar.DAY_OF_WEEK) != 2);rn return result;rn rn /**rn * rn * @param d1rn * @param d2rn * @returnrn */rn public int getHolidays(Calendar d1, Calendar d2) rn return this.getDaysBetween(d1, d2) - this.getWorkingDay(d1, d2);rn rn
java计算任意2个日期内的工作日
[code=&quot;java&quot;] package com.qqw.quanqiuwang.biz.util; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * 计算任意2个日期内的工作日(没有考虑到国定假日) * * @author user...
怎么得到下拉框当前选定项的索引?
在dropdownlistbox中,怎么得到当前选定项的索引?比如下拉框为a,我需要当索引为0时另外处理,我试过用a.selectitem(0),但是这个方法它返回索引0,但是它也执行操作,将下拉框自动设置到第0项,我并不想改变下拉框当前的选择,只想得到它的索引。有人知道怎么做吗?
怎么得到word里当前选定的字符串?
我在写一个基于word API的程序,用来在word里添加功能,又做过这方面的大侠请指点一下。我想在自己的wll中得到word里当前选定字符串,怎么办?rnrn注意:不是用的VBA.rn
怎么得到一组radio选定的是哪个??
我用getParameter得到的怎么是null啊?
listView得到选定项怎么会有问题?
private void listView_SelectedIndexChanged(object sender, EventArgs e)rn rn MessageBox.Show(listView.SelectedItems[0].Text);rn rnlistView的View是Detailsrn第一次单击没有问题,得到第一列的值了 单击第二项rn就提示InvalidArgument=“0”的值对于“index”无效。rn参数名: index 为什么啊
怎么选定一条java的路线
我现在已经学了java的基础知识,现在想java网络方向自学发展。rn请高手指教我应该看哪方面的书呀!rn能写个具体点的么?!
最合适Java初学者的教材
请教各位前辈,rn我是一个Java初学者,哪种教材比较适合自学呢?rnrn谢谢赐教!
找出起始和终止日期内的选定星期几是哪一天? 求助
[img=https://img-bbs.csdn.net/upload/201505/15/1431660025_107290.jpg][/img]rn选择时间段内,然后checkbox选择星期,然后返回具体是哪天 ,该如何写 求代码 谢谢
求问,怎么写一个JAVA的for循环
现有一个字符串String= ”18263636366,053112345678,......”n他是由n个电话号码(座机号和手机号)组成,我想写一个for循环,每次截取一个电话号码,,怎么写,????????我是要这一个群发短信的功能,一次送来多个号码组成的字符串,我想通过for循环,遍历到每一个号码,遍历到一个,发一次短信,请问如何遍历到这个字符串里的号码????
请问怎么建立索引最合适
我要做检索数据 rn一个USER 表 , 主键设置为 ID ,还有字段NAME,AGE。。rn比如一个SELECT NAME FROM USER Where id = @id order by agernrn我索引应该建立在那个字段上比较好呢?rn什么时候应该设置索引呢? 越多越好?rnrn
SDI程序求问
当我点击最大化按钮时如何在CVIEW类中在窗口大小改变之前获得客户区原来的尺寸?视图类的OnSysCommand()和PreTranslateMessage()都试过不行啊,难道一定要在CMainFrame类中获得?急啊、、、
求问C++程序
void main()rnint a[101],i,j;rnfor(i=1;i<=100;i++)rna[i]=1;rnfor(i=2;i<=50;i++)rnif(a[i]=1)rnj=2;rnwhile(i*j<=100)rna[j]=0;rnj++;rnfor(i=1;i<=100;i++)rnif(a[i]==1)rncout<
日期字符串“2003-12-2”怎么得到月日
日期字符串“2003-12-2”怎么得到月日rn我怎么的到12月,2号rn用jsp怎么写呀??
怎么得到程序的安装目录?
我的程序别人下载安装到自己的计算机上之后,我想提示他升级,像瑞星一样,但我不知道他把程序安装在哪个目录下,怎么才能知道程序的安装目录?
怎么得到程序句柄?
我最近要调用一个Java程序,想把该程序在任务栏中的图标隐藏掉。采用ShowWindow函数,而这函数必需要程序句柄(Application.Handle)才能实现该功能,进程句柄、窗体句柄都不行。rn 请问各位大侠,有什么办法可以得到该Java程序的句柄啊?或者其他办法实现该功能也行。急急急急急急急。。。rn 另外,我的Delphi程序要和该Java程序通信,采用哪种通信方式比较好啊?rn
如何得到当前选定的文字
你用过网络猪吗? 里边有个功能,鼠标选定一部分文字,然后就出现一个搜索的小框。我想知道这个功能如何实现的。如何选定文字的时候,知道,选定了文字?如何知道选定的文字的内容?
如何得到textbox的选定文本?
如何得到textbox的选定文本?在textbox中用鼠标选定文本,如何得到这些文本。
怎么样得到选定文件的绝对路径。。。。
本人做了一对文件进行读写的程序, 用jfilechooser类写了一个文件选择对话框,选择文件后只能得到打开对话框时的绝对路径,不能得到选择文件的绝对路径。请教高手!!!!源程序如下。。rnrnrn JFileChooser chooser = new JFileChooser();rn File file1 = new File(".");rn String filename = null;rn String path = null;rnrn chooser.setCurrentDirectory(file1);rn chooser.setMultiSelectionEnabled(false);rn //chooser.setFileFilter(filter);rn int returnVal = chooser.showOpenDialog(null);rnrn if(returnVal == JFileChooser.APPROVE_OPTION) rn filename = chooser.getSelectedFile().getName();rn File filepath = new File(filename);rn path = filepath.getAbsolutePath();rn filename = path.trim();rn //end if
怎样得到listbox的选定值
我把listbox的SelectionMode设置为Multiple多选rn添加一堆数据rn前台选择几项rn我怎样在后台得到这几项的值啊
请问:CMonthCalCtrl(日/月历控件)怎么取到当前选定的日期?
如果带参数的话,请稍微解释一下.谢谢!
java 得到程序的PID
import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; /** * &amp;lt;pre&amp;gt; * 得到JAVA进程的PID * @author kanpiaoxue * Date: 2013-08-21 * test:在Windows和Linux下...
求问JAVA
初学JAVA,请问应该注意些什么,以及一些好的学习方法
java自学,求问
请问哪位大神知道,如何在打印中添加公式。rn公式No3 = No1 - No2.rn打印语句:System.out.println("计算结果:");
java新手求问
[code=java]package 练习;rnrnimport java.util.Scanner;rnrnpublic class ComputerTax rnrn public static void main(String[] args) rn Scanner input = new Scanner(System.in);rn rn System.out.println("Enter city names:");rn String city1 = input.nextLine();rn String city2 = input.nextLine();rn rn System.out.println("第一个城市叫" + city1 + " " + city2);rn rn System.out.println("Enter a number \n");rn rn double r = input.nextDouble();rn double h = input.nextDouble();rn double v = 3.14 * r * r * h;rn rn System.out.println(v);rn input.close();rn rnrn[/code]rnrnEnter city names:rnxi'an rnbeijingrn第一个城市叫xi'an beijingrnEnter a number rnrn1rn2rn6.28rnrn[code=java]package 练习;rnrnimport java.util.Scanner;rnrnpublic class ComputerTax rnrn public static void main(String[] args) rn Scanner input = new Scanner(System.in);rn rn System.out.println("Enter a number \n");rn rn double r = input.nextDouble();rn double h = input.nextDouble();rn double v = 3.14 * r * r * h;rn rn System.out.println(v);rn rn System.out.println("Enter city names:");rn String city1 = input.nextLine();rn String city2 = input.nextLine();rn rn System.out.println("第一个城市叫" + city1 + " ");rn System.out.println( city2 );rn rn rn input.close();rn rnrn[/code]rnrn第一段代码运行正常,第二段代码有问题,控制台输入不了第一个城市名,测试如下rnEnter a number rnrn12rn2rn904.3199999999999rnEnter city names:rnxi'anrn第一个城市叫 rnxi'anrnrn请高手帮忙提点下哪里有问题,谢谢!rn
java基础。。。。。。。求问!
Producer类中 Clerk clerk;这条语句是在创建clerk对象?这是怎么创建的?求解![图片说明](https://img-ask.csdn.net/upload/201609/12/1473667322_762235.png)
JAVA菜鸟求问
小弟是Java新学者一直用记事本写代码,想用方便一点的workbenche,好懂一点,类似VS,大佬们有推荐吗?
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数