字符串的处理问题 String date1="2008-1-12";String year,month,day;如何将date1中的年月日 分别 取到year,month,day中? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用 String类的split()方法或是pattern/Matcher类的正则式匹配 String str = "1982-08-23"; String [] arraystr = str.split("-"); 使用String 的两个方法都可以:split(String par);subString(int beginIndex, int endIndex); 也可以用java的日期处理SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");Date d=sdf.parse(date1);String year=d.getYear();String month=d.getMonth();String day=d.getDate(); 这样也可以 Pattern p = Pattern.compile("(\\d{4})-(\\d{1,2})-(\\d{1,2})"); Matcher m = p.matcher("1234-4-4"); if(m.find()){ System.out.println(m.group(1)); System.out.println(m.group(2)); System.out.println(m.group(3)); } import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;public class Tester { public static void main(String[] args) throws ParseException { String date1 = "2008-1-12"; String year, month, day; Calendar cal = Calendar.getInstance(); cal.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(date1)); year = String.valueOf(cal.get(Calendar.YEAR)); month = String.valueOf(cal.get(Calendar.MONTH)); day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH)); System.out.println("year="+year+"\nmonth="+month+"\nday="+day); }} 再一个方法:import java.util.StringTokenizer;public class Tester { public static void main(String[] args) { String date1 = "2008-1-12"; String year, month, day; StringTokenizer st = new StringTokenizer(date1,"-"); year = st.nextToken(); month = st.nextToken(); day = st.nextToken(); System.out.println("year="+year+"\nmonth="+month+"\nday="+day); }} 第三种方法:public class Tester { public static void main(String[] args) { String date1 = "2008-1-12"; String year, month, day; String[] date = date1.split("-"); year = date[0]; month = date[1]; day = date[2]; System.out.println("year="+year+"\nmonth="+month+"\nday="+day); }} 呵呵都回答的这么快,学习了string的取子串split方法SimpleDateFormat 都可以的看你喜欢哪种方式了 強制轉換成 INT類型, 然後INDEXOF選取位置..分別轉成yearInt,monthInt,dayInt三個INT。然後再分別 toString 為 yearString,monthString,dayString 4楼的有些问题 Date类的那些方法返回的int,而且那几个方法已经过时,不推荐使用了7楼正解,4楼8楼9楼大致差不多,是解析字符串取出数字的。在这里觉得用7楼比较好,解析字符串的作用很强大,该掌握的东西不过Calendar的静态常量Month:指示月份的 get 和 set 的字段数字。这是一个特定于日历的值。一年中的第一个月是 JANUARY,它为 0;最后一个月取决于一年中的月份数。 所以楼主的字符串格式化后的结果为 0月份 最简单有效快速的方法就是 splitinkfish 说 的第3种方法 String year=data1.subString(0,4);String month=data1.subString(indexOf("-"),indexOf("-")+indexOf(subString(indexOf(-),data1.length()))); StringTokenizer我以前就是用的这个,处理字符串的时候比较有效 求教一个正则表达式 java 导出 Runnable jar file 问题 wait()异常问题 命令行下不能执行程序 ????? 编写了一个发送表单并读取web页面返回结果的程序,读取出来的是乱码。 请问什么是对象之间的循环引用 大家来讨论下“java 内部类”吧! equeals()默认行为是比较句柄吗? 100分!请教有经验的大侠:tomcat的性能极限到底有多大?(内详) JAVA初学者,关于JAVA中METHOD调用的问题 TOMCAT如何安装
String str = "1982-08-23";
String [] arraystr = str.split("-");
split(String par);
subString(int beginIndex, int endIndex);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date d=sdf.parse(date1);
String year=d.getYear();
String month=d.getMonth();
String day=d.getDate();
Matcher m = p.matcher("1234-4-4");
if(m.find()){ System.out.println(m.group(1));
System.out.println(m.group(2));
System.out.println(m.group(3));
}
import java.text.SimpleDateFormat;
import java.util.Calendar;public class Tester {
public static void main(String[] args) throws ParseException {
String date1 = "2008-1-12";
String year, month, day;
Calendar cal = Calendar.getInstance();
cal.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(date1));
year = String.valueOf(cal.get(Calendar.YEAR));
month = String.valueOf(cal.get(Calendar.MONTH));
day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH));
System.out.println("year="+year+"\nmonth="+month+"\nday="+day);
}
}
import java.util.StringTokenizer;public class Tester {
public static void main(String[] args) {
String date1 = "2008-1-12";
String year, month, day;
StringTokenizer st = new StringTokenizer(date1,"-");
year = st.nextToken();
month = st.nextToken();
day = st.nextToken();
System.out.println("year="+year+"\nmonth="+month+"\nday="+day);
}
}
public class Tester {
public static void main(String[] args) {
String date1 = "2008-1-12";
String year, month, day;
String[] date = date1.split("-");
year = date[0];
month = date[1];
day = date[2];
System.out.println("year="+year+"\nmonth="+month+"\nday="+day);
}
}
都回答的这么快,学习了
string的取子串
split方法
SimpleDateFormat
都可以的
看你喜欢哪种方式了
Date类的那些方法返回的int,而且那几个方法已经过时,不推荐使用了
7楼正解,4楼8楼9楼大致差不多,是解析字符串取出数字的。
在这里觉得用7楼比较好,解析字符串的作用很强大,该掌握的东西
不过Calendar的静态常量Month:
指示月份的 get 和 set 的字段数字。这是一个特定于日历的值。一年中的第一个月是 JANUARY,它为 0;最后一个月取决于一年中的月份数。
所以楼主的字符串格式化后的结果为 0月份
inkfish 说 的第3种方法
String month=data1.subString(indexOf("-"),indexOf("-")+indexOf(subString(indexOf(-),data1.length())));