루아에서 나는 다음과 같은 문자열을 가지고 있습니다 : 231 523 402 1223 9043 -1 4
에는 공백으로 구분 된 여러 개의 숫자가 들어 있습니다. 이제 int 숫자의 벡터로 변환하고 싶습니다. 몇 가지 기본 제공 함수를 사용하여이를 달성하는 방법은 무엇입니까?루아에서 문자열을 숫자로 변환
0
A
답변
0
tonumber
을 사용하면 문자열을 숫자로 변환 할 수 있습니다. 를 사용하여 문자열 패턴은 하나 개 이상의 결과의 숫자로 구성되어 임의의 문자열 segmet 일치합니다 문자열 http://www.lua.org/manual/5.3/manual.html#pdf-string.gmatch
local example = "123 321 -2"
for strNumber in string.gmatch(example, "%d+") do
tonumber(strNumber)
end
"%d+"
에서 숫자를 얻을 수 있습니다.
무료 코드 작성 서비스가 아니기 때문에 마이너스 기호를 찾아서 처리하도록 남겨 두었습니다. 참조를 읽으십시오. 그거 꽤 쉽지.
일단 숫자가 있으면 루아 테이블에 삽입 할 수 있습니다. http://www.lua.org/manual/5.3/manual.html#pdf-table.insert
0
당신이 코드
return {231,523,402,1223,9043,-1,4}
에 목록을 변환 루아 하드 작업을 할 수 있습니다
이s="231 523 402 1223 9043 -1 4"
t=loadstring("return {"..s:gsub("%s+",",").."}")()
for k,v in ipairs(t) do print(k,v) end
2
당신은 대체 값과 같은 기능을 string.gsub을 사용할 수 있습니다.
repl이 함수 인 경우이 함수는 매치가 발생할 때마다 캡처 된 하위 문자열을 모두 인수로 전달하여 호출됩니다.
사용의 예는 다음과 같습니다 그것을 사용
local function tovector(s)
local t = {}
s:gsub('%-?%d+', function(n) t[#t+1] = tonumber(n) end)
return t
end
이 정직 :
:local t = tovector '231 523 402 1223 9043 -1 4'
결과는 (루아 용어 또는 시퀀스) 벡터이다
for i,v in ipairs(t) do print(i,v) end
1 231
2 523
3 402
4 1223
5 9043
6 -1
7 4
관련 문제
- 1. Postgres 문자열을 숫자로 변환
- 2. 문자열을 숫자로 변환 R
- 3. 문자열을 숫자로 변환
- 4. SQL에서 문자열을 숫자로 변환
- 5. 문자열을 matlab에서 숫자로 변환
- 6. 프롤로그에서 문자열을 숫자로 변환
- 7. 문자열을 숫자로 변환/인코딩
- 8. 입력 문자열을 헥사 숫자로 변환
- 9. XSLT를 사용하여 문자열을 숫자로 변환
- 10. 오라클 날짜 문자열을 숫자로 변환
- 11. Excel vba - 문자열을 숫자로 변환
- 12. matlab에서 문자열을 고정밀 숫자로 변환
- 13. 문자열을 숫자로 변환하고 다시 자연어로 변환 하시겠습니까?
- 14. 시간 스탬프 문자열을 Oracle의 숫자로 변환
- 15. Concatenation : Matlab에서 숫자로 문자열을 변환 하시겠습니까?
- 16. Sybase IQ : 오류/예외없이 문자열을 숫자로 변환
- 17. 문자열을 숫자로 변환 "인수가 숫자 오류가 아닙니다"
- 18. 시간 문자열을 군사 시간 숫자로 변환
- 19. 문자열을 숫자로 연결하고 날짜 시간으로 변환
- 20. MYSQL 형식 문자열을 숫자로
- 21. 자바 변환 함수/유틸리티 클래스를 사용하지 않고 문자열을 숫자로 변환
- 22. 문자열을 루아로 변환
- 23. 파이썬에서 문자열을 숫자로 변환하는 방법
- 24. tcl에서 IP 주소를 숫자로 변환
- 25. 문자열을 숫자로 곱하면
- 26. 문자열을 파이썬으로 숫자로 분할
- 27. 문자열을 숫자로 변환하면
- 28. 문자열을 숫자로 변환합니다. Ascii
- 29. MediaWiki에서 문자열을 숫자로 변환합니다.
- 30. 오라클의 문자를 숫자로 변환
어, 아니요. eval은 당신이 그것없이 할 수있는 모든 곳에서 나쁘다. –
@ OlegV.Volkov - 전체 문자열을'^ [- % d % s] + $'패턴과 비교하여 악의적 인 문자열을 검사 할 수 있습니다. 그 패턴에 맞는 악성 문자열을 만들 수 있습니까?)))) –