Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算字符串中两个字符之间的总字符数-JAVA_Java_String_Char - Fatal编程技术网

计算字符串中两个字符之间的总字符数-JAVA

计算字符串中两个字符之间的总字符数-JAVA,java,string,char,Java,String,Char,需要帮助将伪代码转换为代码 如果有数据占用,程序将接收输入并打印输出。 因此,如果在“:”之后什么也没有,它就会失败。在本例中,原因后面没有任何内容,因此测试将失败,其他所有测试都将通过 我认为最好的方法是检查冒号后面的数据,看看冒号和下一个冒号之前的文本总长度之间是否有一个以上的字符(空格)。因此,从原因到状态的检查将是 //This would be the check betweek the reason colon and status colon - 6 chars //becuase

需要帮助将伪代码转换为代码

如果有数据占用,程序将接收输入并打印输出。 因此,如果在“:”之后什么也没有,它就会失败。在本例中,原因后面没有任何内容,因此测试将失败,其他所有测试都将通过

我认为最好的方法是检查冒号后面的数据,看看冒号和下一个冒号之前的文本总长度之间是否有一个以上的字符(空格)。因此,从原因到状态的检查将是

//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个字符,依此类推


谢谢

您可以使用java中
String
类中的
indexOf
lastIndexOf
方法

String s = "rtabcedaf";
int count = s.lastIndexOf('a') - s.indexOf('a') - 1;  //returns 4

希望这对您来说已经足够了。

您可以使用java中
String
类中的
indexOf
lastIndexOf
方法

String s = "rtabcedaf";
int count = s.lastIndexOf('a') - s.indexOf('a') - 1;  //returns 4
希望这就足够了。

有很多内置功能,您可以使用:

  • 当且仅当此字符串包含指定的字符值序列时,返回true

  • 返回此字符串中指定字符第一次出现的索引。如果值为ch的字符出现在此字符串对象表示的字符序列中,则返回第一次出现的索引(以Unicode代码单位表示)

  • 返回字符串的副本,并省略前导和尾随空格

  • 围绕给定正则表达式的匹配项拆分此字符串

和他们一起玩!!
如果您觉得需要更强大的工具,请联系。

有许多内置功能,您可以使用:

  • 当且仅当此字符串包含指定的字符值序列时,返回true

  • 返回此字符串中指定字符第一次出现的索引。如果值为ch的字符出现在此字符串对象表示的字符序列中,则返回第一次出现的索引(以Unicode代码单位表示)

  • 返回字符串的副本,并省略前导和尾随空格

  • 围绕给定正则表达式的匹配项拆分此字符串

和他们一起玩!!

如果您觉得需要更强大的工具,请联系。

我希望这就是您需要的:

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");
}

我希望这就是你需要的:

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");
}

可以使用split()函数按冒号拆分字符串,并将其放入列表/数组中。我想到了这一点,但这会截断冒号之前的信息。我想如果我考虑到字符的丢失,这可能会起作用。为什么会截断?我不明白。一开始我拒绝了它,因为它会像这样分裂,String[1]=用户名String[2]=克里斯·史密斯ChrisSmith@gmail.comUsers Password string[3]=123ABC………其中,用户密码是拆分的一部分,因为它位于冒号之前,但如果我预期这会起作用的话。我只需减去每根弦的预期字符数。谢谢可以使用split()函数按冒号拆分字符串,并将其放入列表/数组中。我想到了这一点,但这会截断冒号之前的信息。我想如果我考虑到字符的丢失,这可能会起作用。为什么会截断?我不明白。一开始我拒绝了它,因为它会像这样分裂,String[1]=用户名String[2]=克里斯·史密斯ChrisSmith@gmail.comUsers Password string[3]=123ABC………其中,用户密码是拆分的一部分,因为它位于冒号之前,但如果我预期这会起作用的话。我只需减去每根弦的预期字符数。谢谢这是否适用于两个以上的“a”实例?这看起来像是第一个和最后一个。很酷,如果split()不起作用,我会看一看。谢谢。这是否适用于两个以上的“a”实例?这看起来像是第一个和最后一个。很酷,如果split()不起作用,我会看一看。谢谢你,分手是最好的选择。我认为这是最好的办法。我要试一试