Java中的字符串解析

Java中的字符串解析,java,Java,我正在尝试解析一个字符串,如下所示: 输入“20:00”-输出为“20” 输入“02:30”-输出为“2” 输入“00:30”-输出为“” 这就是我写的,我不喜欢我现在的方式,寻找更有效的方式来做这可能是在一次扫描。有什么想法吗 private String getString(final String inputString) { String inputString = "20:00"; // This is just for example final Str

我正在尝试解析一个字符串,如下所示:

输入“20:00”-输出为“20” 输入“02:30”-输出为“2” 输入“00:30”-输出为“”

这就是我写的,我不喜欢我现在的方式,寻找更有效的方式来做这可能是在一次扫描。有什么想法吗

private String getString(final String inputString)
{
    String inputString = "20:00"; // This is just for example       
    final String[] splittedString = inputString.split(":");
    final String firstString = splittedString[0];
    int i;
    for (i = 0; i < firstString.length(); i++)
    {
        if (firstString.charAt(i) != '0')
        {
            break;
        }
    }

    String outputString = "";
    if (i != firstString.length())
    {
        outputString = firstString.substring(i, firstString.length());
    }

    return outputString;
}
private String getString(最终字符串inputString)
{
String inputString=“20:00”;//这只是一个示例
最终字符串[]splittedString=inputString.split(“:”);
final String firstString=splittedString[0];
int i;
对于(i=0;i
您可以使用
java.util.Scanner
。 假设您的数据总是格式化为
\d\d:\d\d
,您可以这样做

Scanner s = new Scanner(input).useDelimiter(":");
int n = s.nextInt();
if (n == 0 ) {
  return "";
} else {
  return Integer.toString(n)
}

这样,您就不必扫描字符串两次——一次用于分割,一次用于检查第一次分割。而且,如果您的数据更复杂,您可以使用regexp或其他工具使扫描仪更复杂。

String v=Integer.toString(Integer.parseInt(input.split(“:”[0]);返回v.equals(“0”)?“”:v我还希望在输入中允许“2:30”空格。在这种情况下,我相信integer.parseInt会爆炸。@Rishi尝试将firstString.trim()传递给parseInt()
Scanner s = new Scanner(input).useDelimiter(":");
int n = s.nextInt();
if (n == 0 ) {
  return "";
} else {
  return Integer.toString(n)
}