Lua Найти строку, которая может иметь пробелы в строке - PullRequest
0 голосов
/ 24 мая 2018

Как найти подстроку Joy-Con (R) в строковой переменной джойстика?

Как найти любую подстроку в переменной джойстика?

function love.load()
    joysticks = "Joy-Con (R) Joy-Con (L)"   
end
function love.joystickadded( joystick )
    if not joysticks:find( joystick:getName() ) then
        print("not supported")
    end
end

1 Ответ

0 голосов
/ 24 мая 2018

Проблема XY:

  1. Проблема не в пробелах, а в - и ().
  2. Неправильный способ проверки - это что-топозволено.

Реальное решение:

function love.load()
    joysticks = {
        ['Joy-Con (R)'] = true
        ['Joy-Con (L)'] = true
    }
end
function love.joystickadded( joystick )
    if not joysticks[joystick:getName()] then
        print("not supported")
    end
end

Вы создаете массив, где индексы являются допустимыми значениями (джойстики), и проверяете точное совпадение.Есть некоторые плюсы:

  1. Это намного быстрее.
  2. Это даст вам ТОЧНОЕ совпадение (Joy-Co не будет совпадать).

Использование% для выхода - или () (например, %-).

...