Я столкнулся с некоторой случайной проблемой в тестовом примере.Я обработал NumberFormatException в коде, но при выполнении тестового примера появляется то же исключение.Пожалуйста, дайте мне знать, если я что-то делаю не так.Спасибо за помощь.
Это мой тестовый пример
@Test
public void splitAmountByDecimal_getCharacterValue(){
String[] data = OtherUtil.splitAmountByDecimal("123abc.01");
boolean result=true;
if(data==null || data.length<2 || !data[0].equals("00") || !data[1].equals(".00")) {
result = false;
}
Assert.assertThat(result, is(true));
}
И это мой код
public static String[] splitAmountByDecimal(String amount){
String[] values=new String[]{"00",".00"};
if(amount!=null && amount.length()>0){
try{
amount = String.valueOf(Math.round(Double.parseDouble(amount)*100.0)/100.0);
}catch(NumberFormatException e){
e.printStackTrace();
return values;
}
String[] splitValues=amount.split("\\.");
if(splitValues.length>1){
if(splitValues[1].length()<2){
splitValues[1]=splitValues[1]+"0";
}
splitValues[1]="."+splitValues[1];
return splitValues;
}else{
return new String[]{amount,".00"};
}
}
return values;
}
И я сталкиваюсь с этим