当前位置: 代码迷 >> Java Web开发 >> 截取字符串,使用Java编写 [有关问题点数:100分] 急
  详细解决方案

截取字符串,使用Java编写 [有关问题点数:100分] 急

热度:794   发布时间:2016-04-16 21:58:13.0
截取字符串,使用Java编写 [问题点数:100分] 急……
内容:"51-70220430<br>
2012.11.19:10年本科毕业。(Hermione)<br>
2012.11.20:现场做促销。(Hermione)<br>
2012.11.22:初夏。(Hermione)<br>
2012.11.29:今天晚上也回去想想,自己更想做什么,明天回复我。(Hermione)<br>
2012.11.30:发生地方.(Hermione)<br>
2012.11.30:安排面试希望在下周四五的上午,最好电话面试,具体时间等确定。(Hermione)<br>
2012.12.4:这边要再面几个人,之后一起给XU YONG看,跟他通知了要等到下周,候选人需要了解此职位着重的技术点,告知排面试具体告知。(Hermione)<br>
2012.12.17:阿范德萨的身份。(Hermione)<br>
2012.12.20:面试了一个多小时,觉得聊下来不错,xuyong不在,要到元旦后才回来,这人希望尽快结束掉面试。面试安排下周排(Hermione)<br>
2012.12.24:2面时间要去问下能否请假再决定,明天沟通。(Hermione)"


要求:
优先级由高到低:
最后一个日期后面的一句话。
第一个日期到第二个日期中间的一段话。
任何两个日期当中最长的一段话。
里面的各种简历号。
更多 0
------解决方案--------------------
首先得把这些字符进行分割,然后可根据时间后面的“:”符号再截取里面的内容,取最长的话就是取长度最长的一份内容,代码如下

StringBuffer content = new StringBuffer("51-70220430<br>").
append("2012.11.19:10年本科毕业。(Hermione)<br>").
append("2012.11.20:现场做促销。(Hermione)<br>").
append("2012.11.22:初夏。(Hermione)<br>").
append("2012.11.29:今天晚上也回去想想,自己更想做什么,明天回复我。(Hermione)<br>").
append("2012.11.30:发生地方.(Hermione)<br>").
append("2012.11.30:安排面试希望在下周四五的上午,最好电话面试,具体时间等确定。(Hermione)<br>").
append("2012.12.4:这边要再面几个人,之后一起给XU YONG看,跟他通知了要等到下周,候选人需要了解此职位着重的技术点,告知排面试具体告知。(Hermione)<br>").
append("2012.12.17:阿范德萨的身份。(Hermione)<br>").
append("2012.12.20:面试了一个多小时,觉得聊下来不错,xuyong不在,要到元旦后才回来,这人希望尽快结束掉面试。面试安排下周排(Hermione)<br>").
append("2012.12.24:2面时间要去问下能否请假再决定,明天沟通。(Hermione)");
String[] contentSplit = content.toString().split("<br>"); //分割内容
 //最后一个日期后面的一句话
System.out.println(contentSplit[contentSplit.length-1].substring(contentSplit[contentSplit.length-1].indexOf(":")+1, contentSplit[contentSplit.length-1].length()) );
//第一个日期到第二个日期中间
System.out.println(contentSplit[1].substring(contentSplit[1].indexOf(":")+1, contentSplit[1].length()) ); 的一段话
//任何两个日期当中最长的一段话
int max = 0, temp = 0;
for(int i = 1; i < contentSplit.length; i++) {
if(Math.max(temp, contentSplit[i].length()) == contentSplit[i].length()) {
max = i;
temp = contentSplit[i].length();

}
System.out.println(contentSplit[max]);


后面的问题没看懂。
------解决方案--------------------
1、首先对整个字符串通过<br>截取字符串,得到数组;
     String str = array[strArray.leng - 1];
     int start = str.indexOf(“:”);
        获取到第一次出现的下标;
        然后截取字符串
        String strUse = str.substring(start,str.lengt());
        strUser就是获取到最后一个时间的字符串。
2、通过遍历数组,并且通过排序方式取得leng()最大的字符串;
3、然后通过字符串对象的
        int start = str.indexOf(“:”);
        获取到第一次出现的下标;
        然后截取字符串
        String strUse = str.substring(start,str.lengt());
        strUser就是获取到两个时间最长的字符串。
  相关解决方案