用空向量替换字符串

时间:2015-05-25 19:07:19

标签: matlab function for-loop

我正在尝试修改此代码,以便如果此函数的输入包含字母'Z',它将返回返回一个空向量。如果它在字符串的开头,我可以为字母“Q”或“Z”执行此操作,但不幸的是,如果这两个字母中的任何一个都在最后,它将无效。

function d = change(a)
new_claim = regexprep(a, 'A', '2');
new_claim1 = regexprep(new_claim, 'B', '2');
new_claim2 = regexprep(new_claim1, 'C', '2');
new_claim3 = regexprep(new_claim2, 'D', '3');
new_claim4 = regexprep(new_claim3, 'E', '3');
new_claim5 = regexprep(new_claim4, 'F', '3');
new_claim6 = regexprep(new_claim5, 'G', '4');
new_claim7 = regexprep(new_claim6, 'H', '4');
new_claim8 = regexprep(new_claim7, 'I', '4');
new_claim9 = regexprep(new_claim8, 'J', '5');
new_claim10 = regexprep(new_claim9, 'K', '5');
new_claim11 = regexprep(new_claim10, 'L', '5');
new_claim12 = regexprep(new_claim11, 'M', '6');
new_claim13 = regexprep(new_claim12, 'N', '6');
new_claim14 = regexprep(new_claim13, 'O', '6');
new_claim15 = regexprep(new_claim14, 'P', '7');
new_claim16 = regexprep(new_claim15, 'R', '7');
new_claim17 = regexprep(new_claim16, 'S', '7');
new_claim18 = regexprep(new_claim17, 'T', '8');
new_claim19 = regexprep(new_claim18, 'U', '8');
new_claim20 = regexprep(new_claim19, 'V', '8');
new_claim21 = regexprep(new_claim20, 'W', '9');
new_claim22 = regexprep(new_claim21, 'X', '9');
new_claim23 = regexprep(new_claim22, 'Y', '9');
new_claim24 = regexprep(new_claim23, '-', ' ');
new_claim25 = regexprep(new_claim24, '(', '');
new_claim26 = regexprep(new_claim25, ')','');
d = new_claim26;
if strfind(d,'Q') == true 
    d = [];
elseif strfind(d,'Z') == true 
    d = [];
else
    return;
end

2 个答案:

答案 0 :(得分:2)

如果您希望检查字符串是否包含字母Zz,可以将其放在代码的开头:

if ~isempty(regexp(a, '[Zz]'))
    d = [];
    return;
end

如果您还想查看Qq,可以执行以下操作:

if ~isempty(regexp(a, '[ZzQq]'))
    d = [];
    return;
end

以上使用正则表达式查看字符串中是否包含Zz(或Qq的字符,具体取决于具体内容你要)。 regexp返回找到这些字符的索引。如果找到Zz(或Qq字符(取决于您想要的字符),则索引将为非空,因此{ {1}}检查。如果找不到~isemptyZ(或zQ)个字符,则此字段为空,因此会跳过此语句。重要的是,如果我们找到qZ(或zQ)字符,我们会立即将q设为空并且< strong> return ,以便其余的逻辑不会运行。

然后您可以继续使用其余的代码。

答案 1 :(得分:1)

您可以检查字符是否包含在字符串中:override func viewDidLoad() { super.viewDidLoad() if let scene = GameScene.unarchiveFromFile("GameScene") as? GameScene { // Configure the view. let skView = self.view as! SKView skView.showsFPS = true skView.showsNodeCount = true /* Sprite Kit applies additional optimizations to improve rendering performance */ skView.ignoresSiblingOrder = true /* Set the scale mode to scale to fit the window */ scene.scaleMode = .AspectFill skView.presentScene(scene) } }

相关问题