需要帮助将伪代码转换为代码。
如果有数据占用,程序将接收输入并打印输出。 因此,如果":"之后没有任何内容,它就会失败。在这个例子中,没有任何理由,因此测试会失败,所有其他测试都会通过。
我认为最好的方法是在冒号后检查数据,看看冒号和下一个冒号前的文本总长度之间是否有多个字符(空格)。因此,从Reason到Status的检查将是
//This would be the check betweek the reason colon and status colon - 6 chars //becuase of the word status
if(lengthBetween_ReasoncolonAndStatusColon - 6 > 2){
//PASS
}else{
//fail
}
输入格式
User Name: Chris Smith ChrisSmith@gmail.com Users Password: 123ABC Last Login Date: 2015/10/14 - 12:30AM Reason: Status: Online
输出
Username: PASS
Password: PASS
Last Login: PASS
REASON: FAIL
Status: PASS
代码
//This would be the check betweek the username and password - 14 chars //becuase of the words User Password
if(lengthBetween_UsernameColonAndPasswordColon - 14 > 2){
//PASS, there must be data here
}else{
//fail, no data
}
任何帮助都可以。一个很好的起点是告诉我如何能够在两个关键字之间找到完整的字符。元素。所以我可以使用一些代码帮助说前两个冒号对之间有X个字符,下一对之间有X个数量,依此类推。
谢谢!
答案 0 :(得分:2)
String API有很多可以使用的内置函数:
contains
当且仅当此字符串包含指定的char值序列时,才返回true。
indexOf
返回指定字符第一次出现的字符串中的索引。如果在此String对象表示的字符序列中出现值为ch的字符,则返回第一个此类事件的索引(以Unicode代码为单位)。
trim
返回字符串的副本,省略前导和尾随空格。
split
围绕给定正则表达式的匹配拆分此字符串。
如果您认为自己需要更强大的工具,请查看StringUtils
中的APACHE COMMONS
。
答案 1 :(得分:1)
您可以在java中使用indexOf
类中的lastIndexOf
和String
方法
String s = "rtabcedaf";
int count = s.lastIndexOf('a') - s.indexOf('a') - 1; //returns 4
希望这对你来说足够了。
答案 2 :(得分:1)
我希望这就是你所需要的:
String s = "User Name: Chris Smith ChrisSmith@gmail.com Users Password: 123ABC Last Login Date: 2015/10/14 - 12:30AM Reason: Status: Online";
int lengthBetweenReasonAndStatus = s.indexOf("Status:") - s.indexOf("Reason:");
if(lengthBetweenReasonAndStatus - 6 > 2) {
System.out.println("Found");
}