java读取数字,解释为八进制,希望解释为字符串

时间:2010-05-03 12:34:52

标签: java yaml

我遇到了一个问题,java正在从数字或字符串的YAML文件中读取数组列表,并且如果它具有前导0而没有8-9位,则它将数字解释为八进制。

有没有办法强制java将yaml字段作为字符串读取?

代码:

ArrayList recordrarray = (ArrayList) sect.get("recordnum");
   if (recordrarray != null) {
      recno = join (recordrarray, " ");
   }

还有人试过:

Iterator<String> iter = recordrarray.iterator();
       if (iter.hasNext()) recno = " " +String.valueOf(iter.next());
       System.out.println(" this recnum:" + recno);
       while (iter.hasNext()){
          recno += ""+String.valueOf(iter.next()));

        System.out.println(" done recnum:" + String.valueOf(iter.next()));

       }

输入是这样的: 061456更改为25390 061506更改为25414 061559 - &gt; FINE

需要一段时间来弄清楚它在做什么,显然这是java的常见问题,

想法? 谢谢

编辑:使用jvyaml

YAML:

  22:
country_code: ' '
description: ''
insection: 1
recordnum:
  - 061264
type: misc

yaml loading:

import org.jvyaml.YAML;
Map structure = new HashMap();
structure = (Map) YAML.load(new FileReader(structurefn)); // load the structure file

1 个答案:

答案 0 :(得分:0)

你在哪里读文件?问题在于读取文件内容的位置。最喜欢的是recordarray列表包含整数,即。他们已经解析了alreadey。找到正在读取记录的位置。也许你正在做这样的事情:

int val = Integer.parseInt(record);

请改用:

int val = Integer.parseInt(record, 10);