У меня есть список, например {'- 1200,30', '- 1,50', '+ 145,49', '+ 399,50', '+ 5,1'. как мне преобразовать этот список в тип Float, а затем отсортировать его. У меня есть требование или обрезка, поэтому используется эта строка кода.
trimmedStrings.add(s.substring(0, s.length() - 4));
Я попробовал приведенный ниже код, но получил исключение NumberFormatException.
List list = driver.findElements(valueList);
List stringList = list.stream()
.map(s -> s.getText())
.collect(Collectors.toList());
List trimmedStrings = new ArrayList();
for(String s : stringList) {
trimmedStrings.add(s.substring(0, s.length() - 4));
}
stringList = trimmedStrings;
List originalList = new ArrayList();
for(String s : trimmedStrings) {
originalList.add(Float.parseFloat(s));
}
java.lang.NumberFormatException: For input string: "- 325.00"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.base/java.lang.Float.parseFloat(Float.java:564)
at pages.amountValuesortCheck(Page.java:56)
at stepDefinitions.PageStepDefinition.values_are_sorted_or_not(PageStepDefinition.java:44)
at ✽.values are sorted or not(file:///C:/Users/eclipse-workspace/src/test/java/features/random.feature:12)
FAILED: io.cucumber.testng.AbstractTestNGCucumberTests.runScenario("sort the values")
Runs Cucumber Scenarios
java.lang.NumberFormatException: For input string: "- 325.00"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.base/java.lang.Float.parseFloat(Float.java:564)
at pages.Page.amountValuesortCheck(Page.java:56)
at stepDefinitions.PageStepDefinition.values_are_sorted_or_not(PageStepDefinition.java:44)
at ✽.values are sorted or not(file:///C:/Users/eclipse-workspace/src/test/java/features/random.feature:12)
Подробнее здесь: https://stackoverflow.com/questions/788 ... it-in-java