У меня проблема с типом String:
Строка из списка-Строка не такая же, как исходная Строка
Вот мои примеры кодов
Map<String, List<String>> parameters_test=new HashMap<String, List<String>>();
parameters_test.put("0",new LinkedList<String>());parameters_test.get("0").add("WM188126M");
parameters_test.put("1",new LinkedList<String>());parameters_test.get("1").add("BXJ006");
parameters_test.put("2",new LinkedList<String>());parameters_test.get("2").add("1829690014");
parameters_test.put("3",new LinkedList<String>());parameters_test.get("3").add("16");
а затем поместите карту в другой метод
if (getParamsMap() != null) {
for (String item : getParamsMap().keySet()) {
List<String> valueList = getParamsMap().get(item);
if (valueList == null || valueList.isEmpty()) {
continue;
}
if (item.equals("0")) {
woCode = valueList.get(0);
} else if (item.equals("1")) {
product = valueList.get(0);
} else if (item.equals("2")) {
purchaseOrder = valueList.get(0);
} else if (item.equals("3")) {
labelNumbers = valueList.get(0);
}
}
}
if (woCode.equals("WM188126M")){
System.out.println("01 true");
}else{
System.out.println("01 fail");
}
if (product.equals("BXJ006")){
System.out.println("02 true");
}else{
System.out.println("02 fail");
}
if (purchaseOrder.equals("1829690014")){
System.out.println("03 true");
}else{
System.out.println("03 fail");
}
if (labelNumbers.equals("16")){
System.out.println("04 true");
}else{
System.out.println("04 fail");
}
Почему я всегда получаю такой результат: 01 правда 02 правда 03 неудача 04 неудача
Давно все в порядке. ошибки появились недавно.
но я ничего не менял.
Код используется в Java 1.6 64bit - Eclipse
Кодировка текстового файла: UTF-8
Меня уже давно судят. С наилучшими пожеланиями всем, кто протянул руку помощи.
Они были «равными» струнами, но теперь это не удалось.
хорошо, вы получаете 1 true 02 true 03 fail 04 fail, но ожидаете 1 true 02 true 03 true 04 true, верно?
Да, должно быть так же




В «1829690014» есть специальный символ. Просто перепечатайте входные строки (особенно 1) в parameters_test, и все должно работать нормально.
Что в этом особенного? Оцените дальнейшие детали
Ваша строка «1829690014» в списке - [, 1, 8, 2, 9, 6, 9, 0, 0, 1, 4], а не [1, 8, 2, 9, 6, 9, 0, 0 , 1, 4], поэтому при сравнении этих двух значений возникает ошибка.
Спасибо за ваш ответ. Но я объявил List <String>. Разве это не должно быть так: "{3 = [16], 2 = [1829690014], 1 = [BXJ006], 0 = [WM188126M]}"?
Список будет таким, но когда вы отлаживаете и видите значение строки, вы найдете свою строку так, как я упоминал.
parameters_test.put("2", new LinkedList());
parameters_test.get("2").add("1829690014");
Взгляните на код здесь - https://gist.github.com/ajinkya-mundankar/240d0e84dc37ee7ea1b222ed5e697db1.
Пожалуйста, обратитесь сюда - Невозможно создать файл с иноязычными символами.
Что ж ... Сэр, я просто сравнил наши коды, а затем заменил только createdMap, и он действительно сработал. но я не знаю как. можем ли мы поделиться мнением?
По умолчанию для файла свойств Eclipse используется кодировка символов ISO 8859-1, поэтому, если файл содержит какой-либо символ, выходящий за рамки ISO 8859-1, он не будет обработан должным образом. пожалуйста, посмотрите здесь - stackoverflow.com/questions/31143923/…
что это за ошибки?