如果字符串不是数字,则我的代码不会显示日期。如果我用2,3,4这样的数字替换它,它可以正常工作,否则代码会抛出一个错误,如logcat所示:
java.util.IllegalFormatConversionException: d is incompatible with java.lang.String
这是代码:
String completedate;
String value;
mYear = mCalendar.get(Calendar.YEAR);
mMonth = mCalendar.get(Calendar.MONTH) + 1;
case R.id.e02:
value = e02.getText().toString();
completedate =
String.format("%02d", value)
+ String.format("%02d", mMonth)
+ mYear;
以下是我的logcat错误
08-15 11:45:11.301: E/AndroidRuntime(1493): FATAL EXCEPTION: main
08-15 11:45:11.301: E/AndroidRuntime(1493):
java.util.IllegalFormatConversionException: d is incompatible with java.lang.String
08-15 11:45:11.301: E/AndroidRuntime(1493): at
java.util.Formatter$Transformer.badArgumentType(Formatter.java:1452)
08-15 11:45:11.301: E/AndroidRuntime(1493): at
java.util.Formatter$Transformer.transformFromInteger(Formatter.java:1683)
08-15 11:45:11.301: E/AndroidRuntime(1493): at
java.util.Formatter$Transformer.transform(Formatter.java:1410)
...
答案 0 :(得分:4)
按此转换:
int value =Integer.parseInt(string);
如果String为null,则检查:
if(string.length()>0 || !string.isEmpty()){
int value =Integer.parseInt(string);
} else{
// string is Null......
}
答案 1 :(得分:1)
使用此:
的Integer.parseInt(字符串)
答案 2 :(得分:1)
使用
int value =Integer.parseInt(mystring);
http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String)
也可以使用try catch
抛出
NumberFormatException - 如果字符串不包含可解析的整数。
所以
try{
int value =Integer.parseInt(mystring);
}catch(NumberFormatException e)
{
}
不确定你在寻找什么。作为旁注,请查看此
日期
http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
编辑:
假设你是textview,而值是当天
textView.setText(new StringBuilder()
.append(mMonth ).append("-")
.append(value).append("-")
.append(mYear).append(" "));
答案 3 :(得分:0)
使用parseInt方法将字符串转换为整数
if (e01.getText().toString()== null || e01.getText().toString().isEmpty()) {
// show error message
}
else{
try{
int sample = Integer.parseInt(e01.getText().toString());
}
catch(Exception e){
//exception
}
}