小编Osc*_*r F的帖子

解析大数字时是否出现NumberFormatException?

我知道这可能不是最有效的编码方式,但这是我到目前为止所做的工作,直到数字变得非常大.代码应该从文件中读取2个数字,例如"052"和"61".然后,它应该将第一个数字从最大值排序到最小值,以使数字尽可能大,第二个数字从最小到最大,以使其尽可能小.(520和16)然后它打印两者的差异,在这种情况下:504.

其中两个数字是"3827367453723784675745843783623672348745389734268374687"和"1682761482512674172712635416571265716235471625176235741".从最大到最小,最小到最大的数字的排序工作正常,但是当我尝试将其解析为整数时NumberFormatException,抛出a.我想因为数字太大而无法存储到一个int所以我尝试解析成a Long但导致相同的错误.

我所做的是读取数字,String然后创建一个String数组,将每个数字存储在一个单独的索引中.然后我做了一个int数组,我几乎有相同的数组,除了整数形式而不是a String.然后我对int数组进行了排序.然后我创建了另一个String来存储新排序的数字,然后我试图解析那个String,那就是抛出异常的地方.

有什么建议?

import java.io.*;    
import java.util.*;    
import java.text.*;    
import static java.lang.System.*;    

public class BigDif    
{    
    public static void main(String[] args) throws IOException    
    {    
        Scanner scan = new Scanner (new File ("BigDif.dat"));    
        int numRuns = scan.nextInt();    
        scan.nextLine();    

    for (int i = 0; i < numRuns; i++)    
    {
        String firstNum = scan.nextLine();
        String secondNum = scan.nextLine();
        String[] firstNum2 = new …
Run Code Online (Sandbox Code Playgroud)

java numberformatexception

5
推荐指数
2
解决办法
3252
查看次数

如果数据在每次返回循环时被替换,我如何将循环中的数据从最小到最大排序?

我有一个应该像这样的程序.你输入一个班级的学生人数,例如3.然后输入学生ID,然后输入4个数字.前3个成绩平均达到班级成绩的80%,第4个成绩是学生在参加期末考试后希望得到的成绩,即总成绩的20%.

Example:  
Enter number of students in class: 3  
(Here you would enter the data)  
123456 90 90 90 90  
543216 70 80 80 70  
435366 80 80 80 90  
Run Code Online (Sandbox Code Playgroud)

然后输出应该是:

123456 90 //(The minimum score the student must get on their final to get the grade they   want)  
435366 130  
543216 44  
Run Code Online (Sandbox Code Playgroud)

我得到了所有的数学,它工作正常.我输入信息,然后我得到正确的数字.我遇到的问题是让输出按照从最小到最大的顺序显示.我使用一个表来输入信息,其中Rows是班级中的学生人数,而列数是5(ID,1级,2级,3级,所需级别)

for (int count = 0; count < numberOfStudents(in this case, 3); ++count)  
{  
    StudentID = The first ID I entered (123456);    
    Grade = *a bit of …
Run Code Online (Sandbox Code Playgroud)

java arrays sorting loops

2
推荐指数
1
解决办法
478
查看次数

你可以在java中反转一个开关吗?

有没有办法倒置开关switch (!(x))?我正在写一个程序,我只希望用户能够输入某些字母.如果他们输入了无效的字母,他们将不得不再次输入.我试图使用一个开关来避免这样做, 因为有效输入的数量远小于无效输入的数量,所以我会有20个案例.
switch(x)
{
case a : case b: case c: case d: etc etc
}

java switch-statement invert

2
推荐指数
1
解决办法
381
查看次数

在java中解析字符串数组

sNums = scanString.nextLine();    
String[] num = sNums.split(" ");    
for (int i = 0; i < num.length; ++i)    
{    
    numbers = new double[i+1];     
    numbers[i] = Double.valueOf(num[i]);    
}    
for(double item: numbers)    
    out.print(item + " ");
Run Code Online (Sandbox Code Playgroud)

我正在尝试将在这种情况下为“num”的数字字符串更改为双精度数组。我很确定这应该可行,但出于某种原因,它将“0.0”存储到输入的每个元素中,除了最后一个。例如,如果我输入“1 5 7 90 52[enter]”,输出应该是“1.0 5.0 7.0...etc”,但我得到的是“0.0 0.0 0.0 0.0 52.0”

java arrays string double parsing

2
推荐指数
1
解决办法
2万
查看次数

java中的GUI"转到上一个/下一个"选项?

有没有办法选择上一个消息对话框或下一个消息对话框?我有一个程序,在完成所有输入和数学计算后,会出现一个消息对话框,其中包含"人员1"的信息,然后按下确定,出现"人员2"的信息.如果可以选择能够在不同的对话框之间导航,那将是很好的.这是打印消息的程序的一部分.

for (i = 0; i < NumEmployees; i++)    
{
    JOptionPane.showMessageDialog(null, 
            "Employee: " + names[i] + "\n" + 
            "ID: " + data[i][0] + "\n" + 
            "Hours worked: " + (data[i][1] + data[i][2]) + "\n" + 
            "Overtime: " + data[i][2] + "hours" + "\n" + 
            "Amount earned: " + payment[i]);    
}
Run Code Online (Sandbox Code Playgroud)

java swing dialog show joptionpane

1
推荐指数
1
解决办法
892
查看次数

3D阵列如何工作?

我使用过2D数组,我只是将它们视为表格,我想知道3D数组如何工作以及如何或何时将它实现到程序中?只是好奇.我应该提到我正在使用java.

java arrays 3d multidimensional-array

0
推荐指数
1
解决办法
1548
查看次数

在某种情况下,你能否"不等于"一个范围?

有没有办法让条件为if语句(x "not"<= 90)?或者是唯一的方法,(x <= 90)if零件中使用,如果是真的则无所事事,然后执行需要做的任何事情else?我应该提到我在Java中这样做.

java if-statement conditional-operator conditional-statements

0
推荐指数
1
解决办法
2356
查看次数

如何在开关盒中写几个条件以具有相同的行为?

switch (x)
{
case A:
case B:
case C:
.doSomething()
}
有没有办法让我在一行中有3个案例?比如这样的事情
case A, B, C:

java case switch-statement

0
推荐指数
1
解决办法
5629
查看次数

班级不抽象吗?

private class HandlerClass implements ActionListener
    {
        public void actionPerfomed(ActionEvent event)
        {
            JOptionPane.showMessageDialog(null, String.format("%s", event.getActionCommand));
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的代码的一部分,当我编译时,我得到一个错误,说HandlerClass不是抽象的,不会覆盖抽象方法actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener.据我所知,actionPerformed应该覆盖HandlerClass不应该吗?我已经尝试abstract在单词class之前添加" "但是我得到了另一个错误,因为我无法调用抽象类.我不确定是否可以用一个例外来解决这个问题?

java abstract-class overriding compiler-errors exception

0
推荐指数
1
解决办法
93
查看次数

Java逻辑混乱

有人可以向我解释为什么这个代码打印出"abeb"而不是abcb?我理解这是因为你从list1引用list2所以改变list2也改变了list1但是我并不完全理解它.

char [] list1 = {'a','b','c','d'};    
char [] list2 = list1;    
list2[2] = 'e';    
list1[3] = list2[1]    
for (char a: list1)    
out.print(a)`
Run Code Online (Sandbox Code Playgroud)

为什么在此代码中没有应用相同的逻辑(我理解的逻辑)?它打印出x作为"5"是从我从上面的代码中理解它应该是7?

int x = 5;
int y = x;
y += 2;
out.print(x);
Run Code Online (Sandbox Code Playgroud)

java reference

0
推荐指数
1
解决办法
66
查看次数

递归语句调用另一个递归语句?

public class Recursive_Prob
{    
    public static void main(String[] args)    
    {    
        out.print("\f");   
        out.print(m(4));   
    }   
    public static int m(int a)   
    {   
        if (a < 0)    
            return 0;    
        else    
            return m(a-2) + n(a-1);    
    }       
    public static int n(int b)     
    {     
        if (b <= 0)    
            return 0;     
        else     
            return 1 + n(b-1);     
    }       
}    
Run Code Online (Sandbox Code Playgroud)

我有一个问题,询问m在调用方法时输出是什么out.print(m(4));我尝试解决它并且出来了,0但答案是4在我运行代码时.我最终得到了m(a-2)存在0而且那部分是正确的,但使用相同的逻辑,n(a-1)也是0如此清楚我做错了什么.有人可以解释这是如何工作的?

java recursion static-methods

0
推荐指数
1
解决办法
83
查看次数