我想编写一个java方法,它在输入中接受一个字符串,并按照以下规则输出另一个字符串:
input output
"123456" "12:34:56"
"23456" "02:34:56"
"3456" "00:34:56"
"456" "00:04:56"
"6" "00:00:06"
任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
我建议使用DateFormat,如下所示。这将解决所有转换的负担。
DateFormat formatFrom = new SimpleDateFormat("HHmmss");
DateFormat formatTo = new SimpleDateFormat("HH:mm:ss");
String origTimeString = "456";
String newDateString = null;
try {
String formattedString =
String.format("%06d", Integer.parseInt(origTimeString));
Date date = formatFrom.parse(formattedString);
newDateString = formatTo.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("Updated string : " + newDateString);
答案 1 :(得分:0)
复制此方法并使用它。
1)如果字符串长度超过6,则返回“ERROR”。
2)首先使用'0'
修复字符串3)第二个用':'
修复字符串4)StringBuilder用于concat。避免使用'+'运算符进行连接。
5)方法'getDate'是静态的,因为'main'方法也是静态的。
public static String getDate(String variable){
StringBuilder aux= new StringBuilder();
StringBuilder string= new StringBuilder();
int length = variable.length();
if(length>6 || length<=0){
return "ERROR";
}else{
//first to fill blanks with 0
for(int i=0;i<6-length;i++){
aux.append("0");
}
variable = aux.append(variable).toString();
//second to put :
for(int i=0;i<6;i++){
if(i%2==0 && i!=0){
string.append(":");
}
string.append(variable.charAt(i));
}
return string.toString();
}
}
public static void main(String[] args) {
System.out.print(getDate("464"));
}