本帖最后由 pengpeng11 于 2009-08-07 10:07:02 编辑

解决方案 »

  1.   


            String sd = "12312312";
            int sdcont = sd.length();
            
            
            for(int i=0;i<sdcont;i++){
             if((i+1) % 3 == 0 ){ 
         System.out.println(sd.charAt(i) + ""); 
         } else { 
         System.out.print(sd.charAt(i) + ""); 
         }       
            }
      

  2.   

    如果你想取第n页的短信
    每页显示m个字
      System.out.println(sd.substring((n-1)*m,n*m+m));
      

  3.   

    public static void main(String[] args) {
            String sd = "12312312";
            int sdcont = sd.length();
            int page = sdcont%3==0?sdcont/3:sdcont/3+1;
            
            for(int i=0;i<page;i++){
             if((i+1)*3 <= sdcont) {
             System.out.println(sd.substring(i*3,(i+1)*3));
             } else {
             System.out.println(sd.substring(i*3,sdcont));
             }
            }    }
      

  4.   

    import java.util.regex.*;public class Test4{
    public static void main(String[] args){
            String sd = "12312312312";
            int sdcont = sd.length();
            int page = sdcont%3==0?sdcont/3:sdcont/3+1;
            //int numPage=3;
            int end=sdcont%3==0?page:page-1;
            for(int i=0;i<end;i++){
             System.out.println(sd.substring(i*3,i*3+3));
            }
            if(end*3<sdcont){
             System.out.println(sd.substring(end*3));
            } }

    }
      

  5.   

    import java.util.*;public class Test4{
    public static void main(String[] args){
            String sd = "12312312312";
            String[] pages=split(sd,3);
        
            System.out.println(Arrays.toString(pages));
            System.out.println("总共有"+pages.length+"页"); }
    public static String[] split(String ds,int numPage){
    ArrayList<String> lis=new ArrayList<String>();
    int index=0;
    for(index=0;index<ds.length();index+=numPage){
    if(index+numPage>ds.length()){
    lis.add(ds.substring(index));
    }else{
    lis.add(ds.substring(index,index+numPage));
    }
    }
    return lis.toArray(new String[0]);
    }

    }
    F:\java>java Test4
    [123, 123, 123, 12]
    总共有4页
      

  6.   

    public class Test6 {    public static void main(String[] args) {
            Sms sms = new Sms(
                    "我想做一个类似手机短" +
                    "信字数超过70字后分" +
                    "页的功能,在后台可以" +
                    "接受到这次短信的总字" +
                    "数和分页数,然后根据" +
                    "分页数截取第条信息<" +
                    "=70字的内容:" +
                    "我想做一个类似手机短" +
                    "信字数超过70字后分" +
                    "页的功能,在后台可以" +
                    "接受到这次短信的总字" +
                    "数和分页数,然后根据" +
                    "分页数截取第条信息<" +
                    "=70字的内容:"+
                    "我想做一个类似手机短" +
                    "信字数超过70字后分" +
                    "页的功能,在后台可以" +
                    "接受到这次短信的总字" +
                    "数和分页数,然后根据" +
                    "分页数截取第条信息<" +
                    "=70字的内容:");
            
            System.out.println(sms.getContentLength());
            
            int totalPage = sms.getTotalPage();
            System.out.printf("total page: %d%n", totalPage);
            
            for(int i = 1; i <= totalPage; i++) {
                System.out.printf("page %d: %s%n", i, sms.getPageContent(i));
            }
        }
    }class Sms {
        
        public final static int PAGE_SIZE = 70;
        
        private String content;       
        
        public Sms(String content) {
            this.content = content;
        }
        
        /**
         * 获取短信内容
         * 
         * @return
         */
        public String getContent() {
            return content;
        }
        
        /**
         * 获取短信内容长度
         * @return
         */
        public int getContentLength() {
            if(content == null || content.length() == 0) {
                return 0;
            }
            return content.length();
        }
        
        /**
         * 获取短信需要分几成几批发送
         * @return
         */
        public int getTotalPage() {
            if(content == null || content.length() == 0) {
                return 0;
            }
            return (content.length() + PAGE_SIZE - 1) / PAGE_SIZE;
        }
        
        /**
         * 获得某一批次发送短信的内容 
         * @param page
         * @return
         */
        public String getPageContent(int page) {
            int totalPage = getTotalPage();
            if(page > totalPage) {
                return null;
            }
            int start = PAGE_SIZE * (page - 1);
            if(page == totalPage) {
                return content.substring(start);
            }
            return content.substring(start, start + PAGE_SIZE);
        }
    }
      

  7.   

    更正一下:    /**
         * 获得某一批次发送短信的内容 
         * @param page    页数应大于 0
         * @return
         */
        public String getPageContent(int page) {
            if(page < 1) {
                return null;
            }
            int totalPage = getTotalPage();
            if(page > totalPage) {
                return null;
            }
            int start = PAGE_SIZE * (page - 1);
            if(page == totalPage) {
                return content.substring(start);
            }
            return content.substring(start, start + PAGE_SIZE);
        }