几种常见的数据类型转换(一)------String转其他类型
程序员文章站
2022-07-03 08:02:34
...
常用数据类型转换:
1.String 数据类型
<1> String-------->int
/** * function1 */ String str0 = "123"; try { int a = Integer.parseInt(str0); } catch (NumberFormatException e) { e.printStackTrace(); } /** * function2 */ String str1 = "234"; try { int b = Integer.valueOf(str1).intValue(); } catch (NumberFormatException e) { e.printStackTrace(); }
在转换过程中需要注意,因为字符串中可能会出现非数字的情况,所以在转换的时候需要捕捉处理异常
<2>String-------->long
/** * function1 */ String str0 ="123"; try { long l1 = Long.parseLong(str0); } catch (NumberFormatException e) { e.printStackTrace(); } /** * function2 */ String str1 = "234"; try { long l2 = Long.parseLong(str1,3); } catch (NumberFormatException e) { e.printStackTrace(); } /** * function3 */ String str2 = "456"; try { long l3 = Long.valueOf("123").longValue(); } catch (NumberFormatException e) { e.printStackTrace(); }
Long.ValueOf("String")返回Long包装类型
Long.parseLong("String")返回long基本数据类型
<3>String-------->double
double db; String str; str = "6.12345"; try { /** * function1 */ db = new Double(str).doubleValue();//xxxValue() method //Returns a new double initialized to the value represented //by the specified String /** * function2 */ db = Double.parseDouble(str); /** * function3 */ db = Double.valueOf(str).doubleValue();//doubleValue() method } catch (Exception e) { e.printStackTrace(); }
<4>String-------->date
/** * function1 */ String dateString = "2017-7-26 "; try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd "); Date date = sdf.parse(dateString); } catch (ParseException e) { System.out.println(e.getMessage()); } /** * function2 */ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.apache.commons.lang.StringUtils; /** * 日期Util类 * * @author calvin */ public class DateUtil { private static String defaultDatePattern = "yyyy-MM-dd "; /** * 获得默认的 date pattern */ public static String getDatePattern() { return defaultDatePattern; } /** * 返回预设Format的当前日期字符串 */ public static String getToday() { Date today = new Date(); return format(today); } /** * 使用预设Format格式化Date成字符串 */ public static String format(Date date) { return date == null ? " " : format(date, getDatePattern()); } /** * 使用参数Format格式化Date成字符串 */ public static String format(Date date, String pattern) { return date == null ? " " : new SimpleDateFormat(pattern).format(date); } /** * 使用预设格式将字符串转为Date */ public static Date parse(String strDate) throws ParseException { return StringUtils.isBlank(strDate) ? null : parse(strDate, getDatePattern()); } /** * 使用参数Format将字符串转为Date */ public static Date parse(String strDate, String pattern) throws ParseException { return StringUtils.isBlank(strDate) ? null : new SimpleDateFormat( pattern).parse(strDate); } /** * 在日期上增加数个整月 */ public static Date addMonth(Date date, int n) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.MONTH, n); return cal.getTime(); } public static String getLastDayOfMonth(String year, String month) { Calendar cal = Calendar.getInstance(); // 年 cal.set(Calendar.YEAR, Integer.parseInt(year)); // 月,因为Calendar里的月是从0开始,所以要-1 // cal.set(Calendar.MONTH, Integer.parseInt(month) - 1); // 日,设为一号 cal.set(Calendar.DATE, 1); // 月份加一,得到下个月的一号 cal.add(Calendar.MONTH, 1); // 下一个月减一为本月最后一天 cal.add(Calendar.DATE, -1); return String.valueOf(cal.get(Calendar.DAY_OF_MONTH));// 获得月末是几号 } public static Date getDate(String year, String month, String day) throws ParseException { String result = year + "- " + (month.length() == 1 ? ("0 " + month) : month) + "- " + (day.length() == 1 ? ("0 " + day) : day); return parse(result); } }