java - 确切的字符串值不匹配
问题描述
我在一个孤立的测试中调用以下内容。
此方法的输出为“50 000”。
我检查过了,没有空间可以修剪。(也尝试过修剪以防万一)。
当我执行相等检查时,测试失败说:
org.junit.ComparisonFailure:
Expected :50 000
Actual :50 000
为什么会这样?
这是我的方法。
import java.text.NumberFormat;
public String aaa() {
String amt = "50000";
Locale locale = new Locale("sv","SE");
NumberFormat f = NumberFormat.getInstance(locale);
amt = f.format(Long.parseLong(amt));
return amt;
}
这是我的测试用例。
@Test
public void test() {
assertEquals("50 000", myClass.aaa());
}
我在这里想念什么?为什么他们不相等?
解决方案
结果中的空格不是普通的空格字符,而是不间断的空格字符。试试这个,看看测试是否成功:
assertEquals("50\u00a0000", myClass.aaa());
推荐阅读
- php - 使用 PHP 将数据添加到 Google 电子表格
- python - Pyspark:从日期时间值中提取日期
- ios - 是否可以在“评价此应用程序”弹出窗口中查看用户选择的内容?
- asp.net-mvc - 如何将值从一个动作传递到另一个动作而不重定向到该动作
- powershell - 使用 PowerShell 将数组连接为字符串
- ruby-on-rails - Rails 接受_nested_attributes_for 和三元关联
- wpf - 将多个列表绑定到特定的 datagridcombobox 列
- swift - 如何将非英文字符保存/获取到核心数据中?
- javascript - 当用户输入一个数字时,显示一个对话框
- python - 无法导入 sklearn