Java中的字符串解析
我正在尝试解析一个字符串,如下所示: 输入“20:00”-输出为“20” 输入“02:30”-输出为“2” 输入“00:30”-输出为“” 这就是我写的,我不喜欢我现在的方式,寻找更有效的方式来做这可能是在一次扫描。有什么想法吗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
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)
}