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

java读取数字,解释为八进制,希望解释为字符串,java,yaml,Java,Yaml,我遇到了一个问题,java正在从数字或字符串的YAML文件中读取数组列表,如果它有一个前导0,并且没有8-9位,它将数字解释为八进制 有没有办法强制java将yaml字段作为字符串读取 代码: 还尝试: Iterator<String> iter = recordrarray.iterator(); if (iter.hasNext()) recno = " " +String.valueOf(iter.next()); System.out.printl

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

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

代码:

还尝试:

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()));

       }
yaml装载:

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

你在哪里读文件?问题在于读取文件内容的位置。最有可能的是,recordarray列表包含整数,也就是说,它们已经被解析过了。找到正在读取记录的位置。也许你正在做这样的事情:

int val = Integer.parseInt(record);
改用这个:

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

您显示的代码不会将字符串解析为整数,因此不是问题所在的代码。除了从yaml加载并映射到sect哈希之外,数据不会在任何其他地方读取。你能解释一下你的意思吗?061456更改为25390-发生这种情况的代码在哪里?在我上面发布的地方,我找不到它在哪里进行翻译,但上面打印语句的输出表明了这一点。最终可能是一个大的散列,但必须有人读取文件并进行散列。您正在使用解析库读取文件吗?我猜这就是你的问题所在;可能您的一个方法调用有一个不正确的参数。好的,yaml文件是一个大的散列,所以要从中提取这个特定的部分:`Map sect=Map sections.gets;`然后从该节中获取数组:`ArrayList recordrarray=ArrayList sect.getrecordnum;`这些是它被读取的唯一位置。structure=Map YAML.loadnew FileReaderstructurefn;//只需加载结构文件即可happening@recursive9:您能附上YAML文件的相关部分吗?可能是YAML已包含错误的号码。“22:国家/地区代码:“”说明:安全设置:1 recordnum:-061264类型:misc”
int val = Integer.parseInt(record);
int val = Integer.parseInt(record, 10);