Разделите и сравните две строки - PullRequest
0 голосов
/ 22 октября 2019

Я строю переводчик, и он читает строку за строкой. теперь давайте предположим, что A является объявленной переменной, если интерпретатор находит только букву a, он покажет ее значение, но если найдет «a», я хочу показать только a.

Я не знаю, какзаставить переводчика распознать "а". затем исключите "" и затем оцените только букву а.

//the line below doesn't work
if(comands[i].equals("\"" + var[position].getNome() + "\"")){
    System.out.print(var[position].getName() + " ");
}

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Вы можете сначала идентифицировать все строки в двойных кавычках и сделать их списком, а затем сопоставить их с объявленной вами переменной.

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class StringContains {
    public static void main(String args[]) {
        String fileData = "Welcome! to A \"A\" \"What A DAY\"";
        String declaredVariable = "A";

        Pattern p = Pattern.compile("\"([^\"]*)\"");
        Matcher m = p.matcher(fileData);
        List<String> stringList = new ArrayList<>();
        while (m.find()) {
            stringList.add(m.group(1));
        }

        for(String s : stringList) {
            if(s.matches(declaredVariable)) {
                System.out.println(s);
            }
        }
    }
}

0 голосов
/ 22 октября 2019

Итак, насколько я вижу, вы хотите иметь возможность взять строку, обычно такую ​​как "A " (без кавычек), и удалить пробел.

  1. Найдитеписьмо. Самый простой способ сделать это - String.charAt(index). В основном, используйте цикл, чтобы найти письмо. Создайте char переменную «значение» (значение будет именем переменной для демонстрации)

  2. Проверьте, является ли это буквой, используя соответствующее значение ASCII (Вы можете читать с char на int) и видеть, является ли это буквой или нет. Если это буква, сделайте value = String.charAt(i) // i is from the for loop

  3. System.out.print(characterValue)

...