假设我们有数字“256” 我希望我的程序检测到左边的第一个数字是2,第二个5,第三个6
你有任何想法或是否有某些命令?
答案 0 :(得分:0)
您可以使用变量子字符串扩展的语法 - 在控制台中键入set /?
以获取更多信息:
set NUM=256
echo 1st digit: %NUM:~0,1%
echo 2nd digit: %NUM:~1,1%
echo 3rd digit: %NUM:~2,1%
答案 1 :(得分:0)
您可以使用aschipfl的方法,也只能使用包含3个单独子串的字符串。无论如何,我的方法适用于0~最大字符串长度。
@echo off
setlocal EnableDelayedExpansion
set "myvar=some_string"
set "define_myvar=%myvar%"
set length=0
echo Original String: %myvar%
echo.
:loop
if defined define_myvar (
set define_myvar=!define_myvar:~1!
set substr=!myvar:~%length%,1!
echo !substr!
set /a length += 1
goto :loop
)
pause >nul
答案 2 :(得分:0)
这是复杂的方式。它循环10位数(覆盖32位无符号整数)。 for /L
循环通常比goto
循环快。
@echo off
setlocal enabledelayedexpansion
set "num=256"
for /L %%I in (0,1,9) do (
if "!num:~%%I,1!"=="" goto break
set /a "digit[%%I] = !num:~%%I,1!"
)
:break
echo %num%
rem // display digit[] array
set digit
输出:
256
位[0] = 2
位[1] = 5
数字[2] = 6