我需要AHK上的代码
我的变量看起来像这样:
CYOMYACHOAYJGUGRYYQNYB
我需要得到这个:
YMAHAJURYNB
我知道,我需要变量中的每一个字符。提前谢谢
答案 0 :(得分:2)
Var := "CYOMYACHOAYJGUGRYYQNYB"
Loop, Parse, Var ; retrieves each character from the variable, one at a time
{
If (Mod(A_Index, 2) = 0) ; If A_Index is even (the remainder after division by 2 is 0)
NewVar .= A_LoopField ; add the retrieved character to the new variable
}
MsgBox %NewVar%
答案 1 :(得分:1)
这对我有用。我正在使用一点点来确定StrSplit(TestString)
给我的字母数组的索引是偶数还是奇数,因为我循环它们。我将此forum帖子用于按位逻辑。然后我连接线是否均匀。因此,当数字为偶数时,if index&1=0
将为真,因此每隔其他字母都会使用此行NewString
连接到NewString=%NewString%%letter%
。通过删除;
,可以随意取消注释消息框行,以便更好地了解循环如何解析数组。
TestString := "ABCD"
word_array := StrSplit(TestString)
NewString:=""
For index, letter in word_array{
if index&1=0
{
;MsgBox, %letter% added
NewString=%NewString%%letter%
;Msgbox, %NewString%
}
}
MsgBox, %NewString%
答案 2 :(得分:0)
由于您没有指定任何语言,我将以伪代码回答:
set counter to 1
set result to empty string
for every char in string:
if counter is even:
append char to result
increment counter by 1
答案 3 :(得分:0)
user3419297打败了我,但我的更容易:
InputBox, x, What Variable?, Enter Variable:
loop, % StrLen(x)
If mod(A_Index,2)=0
y.=substr(x,A_Index,1)
msgbox %y%
Clipboard := y
您在对话框中输入变量,结果显示,并放入剪贴板。 HTH,
编辑:我喜欢Zack Tarr的按位逻辑!替换上面的“if”: If A_Index&1=0
其余的都一样。