我正在尝试使用MessageFormat类来解析消息。但是我得到"MessageFormat解析错误!“。这段代码是我从网上弄来的。这是link
package myy.test;
import java.text.MessageFormat;
import java.text.ParseException;
public class TestParse {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
// creating and initializing MessageFormat
MessageFormat mf
= new MessageFormat("{0, number, #}, {2, number, #.#}, {1, number, #.##}");
;
// creating and initializing String source
String str = "10.456, 20.325, 30.444";
System.out.println(str);
// parsing the string
// accoridng to MessageFormat
// using parse() method
Object[] hash = mf.parse(str);
// display the result
System.out.println("Parsed value are :");
for (int i = 0; i < hash.length; i++)
System.out.println(hash[i]);
}
catch (ParseException e) {
System.out.println("\nString is Null");
System.out.println("Exception thrown : " + e);
}
}
}我在控制台中得到了以下输出。
10.456, 20.325, 30.444
String is Null
Exception thrown : java.text.ParseException: MessageFormat parse error!为什么会出现此错误?如何解决此错误?谢谢。
发布于 2021-01-29 14:44:31
我将构造函数中的参数更改为
MessageFormat mf = new MessageFormat("{0,number,#,###.##}, {2,number,#,###.##}, {1,number,#,###.##}");Consolo输出如下所示:
10.456, 20.325, 30.444
Parsed value are :
10.456
30.444
20.325发布于 2021-01-29 14:36:50
在遇到解析问题时,像往常一样,尝试执行相反的操作,以查看何时需要解析输入。这是一个适用于XML、JSON、Dates和MessageFormat的通用指南。
MessageFormat mf
= new MessageFormat("{0, number, #}, {2, number, #.#}, {1, number, #.##}");
;
System.out.println(mf.format(new Integer[] { 10456, 30444, 20325 }));输出
10456, 20325, 30444如您所见,输出包含前导空格。如果我们更改为:
String str = " 10.456, 20.325, 30.444"; 然后一切都能正常工作。
输出
10.456, 20.325, 30.444
Parsed value are :
10.456
30.444
20.325https://stackoverflow.com/questions/65949684
复制相似问题