小编Aka*_*shi的帖子

解析int时出现NumberFormatException

所以我正在创建文件读取器/写入器,可以访问给定的文件并保存/读取它.我在从文件读取时遇到问题.内容是整数,字符串和双由"|"分隔 分隔符.我正在使用StringTokenizer来分隔令牌并将它们保存到每个单独的变量中,但是当我读取整数时,我得到一个NumberFormatException,即使该字符串只包含一个int.

这是代码:

FileReader fr = new FileReader(filename);
BufferedReader buff = new BufferedReader(fr);
String line;

while ((line = buff.readLine()) != null) {
    StringTokenizer st = new StringTokenizer(line, "|");
    while (st.hasMoreElements()) {
         int Id = Integer.parseInt(st.nextToken());
         String Name = st.nextToken();
         double cordX = Double.parseDouble(st.nextToken());
         double cordY = Double.parseDouble(st.nextToken());
    }
}
Run Code Online (Sandbox Code Playgroud)

该文件的示例行:

8502113|Aarau|47.391355|8.051251
Run Code Online (Sandbox Code Playgroud)

而错误:

java.lang.NumberFormatException: For input string: "8502113"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at storage.FileUtilities.readCitiesFromFile(FileUtilities.java:63)
at basics.Test.main(Test.java:16)
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?StringTokenizer是否以某种我不知道的方式篡改字符串?

编辑:这是创建文件的代码:

FileWriter fw = new FileWriter(filename, !overwrite); // For FileWriter true = …
Run Code Online (Sandbox Code Playgroud)

java string int

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

构造函数链接没有这个()

我知道构造函数链是从最小的构造函数到最大的构造函数.例如

    public MyChaining(){
        System.out.println("In default constructor...");
    }
    public MyChaining(int i){
        this();
        System.out.println("In single parameter constructor...");
    }
    public MyChaining(int i,int j){
        this(j);
        System.out.println("In double parameter constructor...");
    }
Run Code Online (Sandbox Code Playgroud)

另外据我所知,调用this()并且super()必须在第一行.但绕过那个限制和链构造函数是否可能(并且如果是,是否有效)?

例如,我有两个共享一些代码的构造函数.

    public Location(String _Name) throws IOException, JSONException {
        //Three lines of unique code (must be executed before the shared code)
        //Shared code
    }

    public Location(JSONObject json) {
        //Shared code
    }
Run Code Online (Sandbox Code Playgroud)

第一个构造函数可以以任何方式调用第二个构造函数吗?

java constructor

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

CASE WHEN之后的GROUP BY

我试图从连接创建一个表,并基于id总结一些字段.这部分工作得很好.我还试图添加一个额外的列并使用case语句我想填充它.

这是脚本

CREATE TABLE TABLE1
AS
  SELECT ID, IDC, SUM(AMOUNT) PRICE, SUM(COST) COST, SUM(AMOUNT-COST) PROFIT,
  CASE PROFIT
    WHEN PROFIT < 1000 THEN 'Low'
    WHEN PROFIT < 5000 THEN 'Medium'
    ELSE 'High'
  END AS PROFITLEVEL  
  FROM
    (SELECT DISTINCT ID, IDC, AMOUNT, COST
    FROM ORDER_ITEMS 
    LEFT JOIN ORDERS 
    ON ID = IDC)
  GROUP BY ID, IDC;
Run Code Online (Sandbox Code Playgroud)

但是,这会返回ORA-00905:缺少关键字错误.

任何帮助,将不胜感激

sql oracle

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

标签 统计

java ×2

constructor ×1

int ×1

oracle ×1

sql ×1

string ×1