我正在编写以字符串形式接收数据段的代码。该字符串将具有不同的大小,但始终以相同的字符开头和结尾(开始:'<s-'
结束:'-e>'
)。我想在段的开始和结束之前防止用户输入无效字符时出错。 e.g。
"fdslkjds<s-hello-e>"
"<s-there-e>dfsad"
"eiend<s-john-e>dfafsd"
我知道这可以通过导入正则表达式库(模式和匹配)来完成。但我想在不使用这些库的情况下尝试这一点。还有其他办法吗?我一直在寻找String库,但找不到我需要的确切方法。
答案 0 :(得分:3)
我建议您查看Strings
的startsWith()
和endsWith()
方法。
我还建议你自己编写代码,但是如果你不想打扰它,这里有一些应该有用的代码:
String input = [your code here]
while(!input.startsWith("<s-") || !input.endsWith("-e>"))
{
System.out.println("Error! Invalid input! Please try again:");
input = [your code here]
}
答案 1 :(得分:0)
正如The Hat with the Hat所说,startsWith和endsWith等字符串有足够的功能来实现你的目标。
if(!userString.startsWith("<s-") || !userString.endsWith("-e>")) {
throw new Exception("Please do not enter invalid characters before the start and the end of the segment");
}
答案 2 :(得分:0)
您可以使用indexOf
和lastIndexOf
查找字符串中<s-
和-e>
的位置,并使用substring
提取正确的子字符串,而无需任何字符串“噪声”。
String s = "eiend<s-john-e>dfafsd";
String s2 = s.substring(s.indexOf("<s-"), s.lastIndexOf("-e>") + 3);