将一个英文句子分成两行

    技术2022-05-11  12

    public class SentenceSplit {     public static String[] split(String str,int firstLineMaxLength)     {         //attention:if there are sequential break char(like ' ','.','?','!'),this program may not run correctly.         String [] lines = {"",""};         if(str.length() <= firstLineMaxLength)         {             lines[0] = str;             return lines;         }         String oldstr = str;         System.out.println(str.length()); //        str = str.replace(".", " "); //        str = str.replace("?", " "); //        str = str.replace("!", " ");         String [] words = str.split(" ");         int total = 0;         for(int i=0;i<words.length;i++)             {                 System.out.print(words[i]+"("+words[i].length()+")");                 total += words[i].length();             }         System.out.println("total="+total);         int sperator=0;         int temp=0;         for(int i=0;i<words.length;i++)         {                temp = sperator;             if(i>0)sperator++;             sperator += words[i].length();             if(sperator > firstLineMaxLength)             {                 sperator = temp;                 break;             }         }         System.out.println("sperator="+sperator);         if(sperator == 0 )         {             lines[1] = oldstr;         }else         {             if(sperator < oldstr.length() && sperator < firstLineMaxLength)sperator++;             lines[0] = oldstr.substring(0,sperator);             lines[1] = oldstr.substring(sperator,str.length());         }         System.out.println("sperator="+sperator); //        if(lines[1].length() > firstLineMaxLength) //        { //            String lines2[] = split(lines[1],firstLineMaxLength); //            for(int i=0;i<lines2.length;i++) //                System.out.println("line"+i+":"+lines2[i]); //        }想用递归实现分成多行,还没有实现

            return lines;     }     public static void main(String args[])     {         String str = "Have you ever wondered how a website removed the underline that usually acco?";         String lines[] = split(str,31);         System.out.println(lines.length+"lines!");         for(int i=0;i<lines.length;i++)             System.out.println("line"+i+":"+lines[i]);                 } }


    最新回复(0)