java如何分割字符串

有一个时间字符串,2013-07-24 11:48:20
现在要把它的,年,月,日,时,分,秒的数字分别取出来,
即把上字符串分成6份,怎么分

substring讲解:

s=s.substring(int begin);截取掉s从首字母起长度为begin的字符串,将剩余字符串赋值给s;

s=s.substring(int begin,int end);截取s中从begin开始至end结束时的字符串,并将其赋值给s;

split讲解:

java.lang.string.split
split 方法
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
stringObj.split([separator,[limit]])
参数
stringObj 
必选项。要被分解的 String 对象或文字。该对象不会被 split 方法修改。
separator 
可选项。字符串或 正则表达式 对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽

略该选项,返回包含整个字符串的单一元素数组。 
limit
可选项。该值用来限制返回数组中的元素个数。

说明
split 方法的结果是一个字符串数组,在 stingObj 中每个出现 separator 的位置都要进行分解

。separator 不作为任何数组元素的部分返回。

split 的实现直接调用的 matcher 类的 split 的方法。“ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义。

Java代码

    public static void main(string[] args) {   

    string value = "192.168.128.33";   

    string[] names = value.split("\\.");   

    for (int i = 0; i < names.length; i++) {   

    system.out.println(names[i]);   

    }}  

    如果用竖线“|”分隔的话,将出现不可得到的结果,必须改为“\\|”  

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-09

    用split处理太麻烦,可以使用StringTokenizer。

    如果是时间字符串,建议使用API里现有的方法,方便


    import java.text.Format;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    import java.util.StringTokenizer;

    public class $ {

        public static void main(String[] args) {
            String str = "2013-07-24 11:48:20";

            System.out.println("第一种方法:针对字符串");
            test1(str);
            try {
                System.out.println("第一种方法:针对时间");
                test2(str);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }

        private static void test1(String str) {
            StringTokenizer st = new StringTokenizer(str, "- :");

            List<String> data = new ArrayList<String>();

            while (st.hasMoreElements()) {
                data.add(st.nextToken());
            }

            System.err.println(data);
        }

        private static void test2(String str) throws ParseException {

            Format f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date d = (Date) f.parseObject(str);

            // 由于Date里面获取年月日的方法被@Deprecated了,所以使用Calendar

            Calendar c = Calendar.getInstance();
            c.setTime(d);

            System.out.println(c.get(Calendar.YEAR));
            System.out.println(c.get(Calendar.MONTH));// 月份从0开始
            System.out.println(c.get(Calendar.DAY_OF_MONTH));
            System.out.println(c.get(Calendar.HOUR));
            System.out.println(c.get(Calendar.MINUTE));
            System.out.println(c.get(Calendar.SECOND));
        }
    }

    结果:

    第一种方法:针对字符串
    [2013, 07, 24, 11, 48, 20]
    第一种方法:针对时间
    2013
    6
    24
    11
    48
    20


本回答被提问者采纳
第2个回答  推荐于2017-09-05

java分割字符串用split,例如

String sourceStr = "1,2,3,4,5";
String[] sourceStrArray = sourceStr.split(",");
for (int i = 0; i < sourceStrArray.length; i++) {
    System.out.println(sourceStrArray[i]);
}

split分隔符总结

1.字符"|","*","+"都得加上转义字符,前面加上"\\"。
2.而如果是"\",那么就得写成"\\\\"。
3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。

比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开。这样就把字符串分成了3个子字符串。

第3个回答  2013-07-24
String str = "2013-07-24 11:48:20";
Pattern pat = Pattern.compile("(\\d+ ?)");
Matcher m = pat.matcher(str);
while(m.find()){//查找一下
System.out.println(m.group().replaceAll("[^0-9]", ""));//替换掉非数字字符(上面的正则表达式里面是有一个空格的,注意或者你把正则改成Pattern pat = Pattern.compile("(\\d+-?)");都是可以的)
}
第4个回答  2013-07-24
String.substring()方法可以分割字符串,例如你的字符串中是以“,”分割的,可以这样用:String.substring(",")就可以分割出来了
相似回答