如何使用split函数拆分此字符串()

时间:2013-01-30 10:49:45

标签: java android

我有一根绳子“2013-1-31 08:25 PM”

我想从太空分裂:

我能够在太空后分裂成“2013-1-31 08”和“25 PM”

现在我想要“2013-1-31”和“08”

我无法在新字符串中获得08中的值,但我得到的是“2013-1-31”

String view_datee = view_date.getText().toString();

               String[] separated = view_datee.split(":");
               String first =separated[0];
               String second=separated[1]; 


               String[] newSeperated = first.split(" ");
               String third = newSeperated[0]; 
               String four=   newSeperated[1];



               Log.i("first",first);
               Log.i("second",second);

               Log.i("third", third);
               Log.i("four", four);

我不知道如何获得四个值的意思08。

6 个答案:

答案 0 :(得分:3)

以下是使用日期/日历的示例(它使用桌面java但很容易转换):

public static void main(String args[]) throws Exception {
    String data = "2013-1-31 08:25 PM";
    DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd hh:mm a");
    Calendar cal = Calendar.getInstance();
    cal.setTime(fmt.parse(data));
    //2013-1-31
    System.out.println(new SimpleDateFormat("yyyy-M-dd").format(cal.getTime()));
    //20
    System.out.println(cal.get(Calendar.HOUR_OF_DAY));
    //08
    System.out.println(new SimpleDateFormat("hh").format(cal.getTime()));
}

请注意,08:25 PM20:05,因此您可以根据需要获得08或20。我在我的例子中展示了两者。

答案 1 :(得分:1)

试试这个,

public static void main(String[] args) {
        String str = "2013-1-31 08:25 PM";
        System.out.println("[Date:"+str.split(" ")[0]+"][Hours:"+str.split(":")[0].split(" ")[1]+"]");
    }

输出,

run:
[Date:2013-1-31][Hours:08]
BUILD SUCCESSFUL (total time: 1 second)

答案 2 :(得分:0)

从官方Javadoc开始,split将RegExp作为参数。

因此,您不能将" "用作split参数。

相反,您应该使用"\s"按空格分隔字符串。

然后,您的代码将是:

           String[] separated = view_datee.split(":");
           String first =separated[0];
           String second=separated[1]; 


           String[] newSeperated = first.split("\\s");
           String third = newSeperated[0]; 
           String four=   newSeperated[1];



           Log.i("first",first);
           Log.i("second",second);

           Log.i("third", third);
           Log.i("four", four);

答案 3 :(得分:0)

你确定String以PM或AM结尾 然后你可以这样做

String s= "2013-1-31 08:25 PM";

        String newStr=s.substring(s.indexOf(" ")+1,s.lastIndexOf(" "));
        System.out.println(newStr);
        String result[]=newStr.split(":");
        System.out.println(result[0]);
        System.out.println(result[1]);

答案 4 :(得分:0)

检查以下代码,其工作正常

String date = "2013-1-31 08:25 PM";
    String[] split = date.split(":");
    System.out.println(split[0]+"date:::"  + split[1] );
    String[] Datesplit = split[0].split(" ");
    System.out.println(Datesplit[0]+"date splited:::"  + Datesplit[1] );

以下的输出
2013-1-31 08date:::25 PM
2013-1-31date splited:::08

答案 5 :(得分:0)

我检查了你的代码并且它正常工作.. 这是我发布的任何我输入和执行的内容:

    String teststr = "2013-1-31 08:25 PM";
    System.out.println("teststr: " + teststr);
    String[] separated = teststr.split(":");
    String first = separated[0];
    String second = separated[1];
    String[] newSeperated = first.split(" ");
    String third = newSeperated[0];
    String four = newSeperated[1];
    System.out.println("first : "+first);
    System.out.println("second : "+second);
    System.out.println("third : "+third);
    System.out.println("fourth : "+four);

它给我以下输出: teststr:2013-1-31 08:25 PM 第一名:2013-1-31 08 第二:下午25点 第三名:2013-1-31 第四名:08