当前位置: 首页 > 知识库问答 >
问题:

在Java中使用对象(实体)

向泽语
2023-03-14

我是Java的新手,我已经开发了一个程序,允许用户输入他的in-and结果,还可以看到这两个结果的摘要(第二个代码示例)。

我使用文本文件存储数据(第一个示例)。我为每个用户使用两个文本文件,一个用于收入,一个用于结果。

Bonus //category
21 //amount
28/12/2015 //date
Salary
13
03/01/2016
Savings Deposit
33
03/01/2016

下面的代码示例总结了用户的in-和结果(注意:opnEsoda是一个扫描器):

try {
while (opnEsoda.hasNextLine());

               do //I read only the lines with the amounts from textfile
                        {
                            String[] entry = new String[3];

                            int x =0;
                            for (int i = 0; i < 3; i++)
                            {
                                if (opnEksoda.hasNextLine())
                                {
                                    // Trim removes leading or trailing whitespace.
                                    entry[i] = opnEksoda.nextLine().trim();

                                }

                            }
                           x = Integer.parseInt(entry[1]); // converts string numbers to int
                           sumeksoda += x ; // addition ... Amounts of the txt file 
                        }

              while (opnEksoda.hasNextLine());
                // information dialog that show the money spent and got.
                    JOptionPane.showMessageDialog(null,
                    "You got: "+sumesoda+" €",
                    "Your stats",
                    JOptionPane.INFORMATION_MESSAGE,icon);


            } catch (FileNotFoundException e) {
                System.out.println("COULD NOT READ FILE!!!");
            }

这会显示:你得到67欧元

我的目标是把这周和这个月花的钱拿出来。我还想知道每一个类别(可选)的花费金额。最好的方法是什么?

共有1个答案

严昊昊
2023-03-14

要计算当月的收入,您必须在循环中分析条目[2](日期),并只对月份相同的值进行求和。

在程序开始时,存储当前日期:

GregorianCalendar cal = new GregorianCalendar();
cal.setTime(new Date());                          // store the current date
int curYear  = cal.get(cal.YEAR );
int curMonth = cal.get(cal.MONTH);

然后,在读取文件时,解析日期,比较年和月:

cal.setTime(new SimpleDateFormat("dd/MM/yyyy").parse(entry[2]));   // parse the date
if( cal.get(cal.YEAR)==curYear && cal.get(cal.MONTH)==curMonth ){
    x = Integer.parseInt(entry[1]); // converts string numbers to int
    sumeksoda += x ; // addition ... Amounts of the txt file 
}

要计算每个类别的收入,必须分析条目[0](该类别)。如果类别是预先已知的,那么只需创建几个不同的sum变量:

int sumeksodaSalary=0;
int sumeksodaBonus=0;

然后,在循环内部:

if("Salary".equals(entry[0])) sumeksodaSalary += x ;
if("Bonus" .equals(entry[0])) sumeksodaBonus  += x ;
 类似资料:
  • 我从我的Spring项目中删除了Spring Roo,这是不必要的,而且在eclipse STS中构建花了很多时间。我执行了一个推入,我的实体对象现在包含了旧的Roo文件的源代码。 几乎没有什么变化,包括PersistentContext管理,这看起来很奇怪。事实上,我注意到,每次创建查询时,我都需要实例化实体类以获得EntityManager? 在我的实体类中,我有

  • 问题内容: 我对JNI相对较新,并且掌握了使用JNI处理Java对象中的整数和数组的基本知识。现在,我正在尝试修改/访问Java对象中的Java对象。 我一直在互联网和Stack Overflow上进行搜索,但还没有找到执行该操作的方法。 这是例子。 在Java中: 在JNI中,如何通过ObjectTwo从ObjectOne访问“ buff”?我尝试过这样的事情… 我做错了什么吗? 问题答案: 在

  • 我做了一个图形用户界面,它使用滑块来上下缩放对象。(在这种情况下是矩形)。我想知道是否有一种方法也可以使用滑块来指定旋转程度。所以会有两个滑块,一个控制比例,另一个控制旋转。如果有人能帮我做这个,那就太好了,这是我到目前为止用比例滑块做的。

  • 我正在尝试使用jackson api中的ObjectMapper类将下面的JSON转换为Java对象,但我收到一个错误。我的java类应该是什么样子? 如果我有下面的json,我可以将其转换为java对象。 Json:

  • 我的任务是使用LibGdx游戏引擎在java中创建自己的碰撞物理引擎。这是自上而下的,所以忽略重力。我一直在琢磨如何对物体施加力。我通过求速度随时间的变化来求加速度。下面是如何找到x分量的加速度: 是x速度,和是一个,用于在不同时间存储速度的x分量(我使用的是均值定理)。基本上,我已经找到了x分量的加速度。现在如果我施加一个力,我做加速度*质量。这就是我完全困惑的地方。 F=ma.是的,所以我能够

  • 我希望有一个更具体的可比接口,以便我可以更好地键入返回参数。该界面目前如下所示: 现在,当我尝试对这些更具体的可比值列表进行排序时,如下所示,我收到一个错误,因为b的类型是“RankComparable”而不是类型“T”。 为了解决这个问题,我可以实现如下所示的Self方法。这将解决我的问题,但它看起来非常丑陋。如果有人能找到解决这个问题的更好的办法,我会很高兴。