Почему не равно String и String From List <String>

У меня проблема с типом 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

Меня уже давно судят. С наилучшими пожеланиями всем, кто протянул руку помощи.

что это за ошибки?

Deadpool 19.09.2018 05:59

Они были «равными» струнами, но теперь это не удалось.

AmerDwight 19.09.2018 06:02

хорошо, вы получаете 1 true 02 true 03 fail 04 fail, но ожидаете 1 true 02 true 03 true 04 true, верно?

Deadpool 19.09.2018 06:04

Да, должно быть так же

AmerDwight 19.09.2018 10:37
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
362
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

В «1829690014» есть специальный символ. Просто перепечатайте входные строки (особенно 1) в parameters_test, и все должно работать нормально.

Что в этом особенного? Оцените дальнейшие детали

AmerDwight 19.09.2018 10:35

Ваша строка «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]}"?

AmerDwight 19.09.2018 10:27

Список будет таким, но когда вы отлаживаете и видите значение строки, вы найдете свою строку так, как я упоминал.

Pooja Aggarwal 20.09.2018 05:13
Ответ принят как подходящий
  • Текстовый файл содержит некоторые специальные символы, а кодировка неправильно установлена ​​на UTF-8.
  • повторно введите строку под строкой.

parameters_test.put("2", new LinkedList());
parameters_test.get("2").add("1829690014");

Что ж ... Сэр, я просто сравнил наши коды, а затем заменил только createdMap, и он действительно сработал. но я не знаю как. можем ли мы поделиться мнением?

AmerDwight 19.09.2018 10:22

По умолчанию для файла свойств Eclipse используется кодировка символов ISO 8859-1, поэтому, если файл содержит какой-либо символ, выходящий за рамки ISO 8859-1, он не будет обработан должным образом. пожалуйста, посмотрите здесь - stackoverflow.com/questions/31143923/…

Ajinkya 26.09.2018 14:17

Другие вопросы по теме