【发布时间】:2013-02-18 21:01:06
【问题描述】:
目前我正在检查以下字符串:
if(parseCommand.contains("vlan1")
|| parseCommand.contains("Fa0/1i") || parseCommand.contains("Fa0/1o")
|| parseCommand.contains("Fa1/0") || parseCommand.contains("Fa1/1")
|| parseCommand.contains("Fa1/2") || parseCommand.contains("Fa1/3")
|| parseCommand.contains("Fa1/4") || parseCommand.contains("Fa1/5")
|| parseCommand.contains("Fa1/6") || parseCommand.contains("Fa1/7")
|| parseCommand.contains("Fa1/8") || parseCommand.contains("Fa1/9")
|| parseCommand.contains("Fa1/11") || parseCommand.contains("Gi0"))
{
//do things here
}
但是它可能包含 vlan1 到 vlan4094,我必须检查这些。最简单的方法是什么,我猜我是否必须将它全部放在一个递增到 4094 的 for 循环中?
for (int i = 1; i <= 4094; i++)
{
if(parseCommand.contains("vlan"[i]))
{
//do stuff here
}
}
if(other conditions from above)
{
//do same stuff again here
}
否则我可以将所有条件都粘贴在 for 循环中并在那里执行所有操作。这一切看起来都很乱,有没有一种不乱的方法?
【问题讨论】:
-
正则表达式在这里可能有用
-
字符串的格式是什么?是“vlan”出现多次还是只出现一次?
-
@Beau:单独的正则表达式无法进行解析,但通过提取它可以提供很大帮助。也许你可以添加一个你认为它会如何工作的答案?
-
@Tom 这将是一次,但它可能会发生多次,所以我想要一种更强大的处理方式。
-
@BeauGrantham 我建议我可以更改我最初必须为 vlan 部分匹配的内容,其余部分保持不变,这样可以。