黑马程序员技术交流社区

标题: 字符串小程序 [打印本页]

作者: 东大小宇哥    时间: 2015-5-18 20:56
标题: 字符串小程序
假定屏幕的像素宽度为 screenWidth,写一个函数计算一个字符串需要分成几行显示。
要求:
1)、每行应尽可能多地显示字符,但不能有字符部分或完全显示在屏幕外。超过部分的字符换下一行
显示。
2)、每个字符的像素宽度不一样,每个字符的像素宽度不一样。用 int GetCharWidth(char c)获得每
个字符的像素宽度。
作者: 小悟空et    时间: 2015-5-18 22:04
不知道GetCharWidth的用法,或者是这个方法要自己定义吧,反正我觉得我的思路就是下面的了。
我把我的GetCharWidth换成其他返回类型是int的方法,是可以得出结果的。

  1. class CharWidth2
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int num = count("ljakgljalkjtklasngmcn.mglkajkljaklsjkjtsaogojsadlkjglkasjfklasjdlkfjal;dksjflkajglkajdklgajdlkgjlka;jglk;adjgklajdklgjklasdjglkajdlgkjalkgjal;kgjkaljglkajgklajklgjaklgjaljglkajgklajgla");
  6.                 System.out.println(num);
  7.         }
  8.         public static int count(String s)
  9.         {
  10.                 char[] arr = s.toCharArray();
  11.                 int count = 0;
  12.                 int sum = 0;
  13.                 final int screenWidth = 1366;
  14.                 for(int x = 0;x<arr.length;x++)
  15.                 {
  16.                         sum = sum + GetCharWidth(arr[x]);
  17.                         if(sum >= screenWidth)
  18.                         {
  19.                                 sum = 0;
  20.                                 count++;
  21.                                 x--;
  22.                         }
  23.                 }
  24.                 return count;
  25.         }
  26.        
  27. }
复制代码

作者: 开弓没有回头箭    时间: 2015-5-18 22:46
  1. int Fun(String s,final int screenWidth)
  2. {
  3.         int lineCount = 0;//记录行数
  4.         int pixelCount = 0;//记录字符的像素宽度和
  5.         for(int i=0;i<s.length();i++)
  6.         {        //计算字符的像素宽度和
  7.                 pixelCount = pixelCount + GetCharWidth(s.charAt(i));
  8.                 if(pixelCount > screenWidth)//像素和大于屏幕宽度,则换行
  9.                 {
  10.                         pixelCount = 0;//像素和清0
  11.                         lineCount++;//行数加1
  12.                         i--;//超出屏幕宽度,该字符换到下一行
  13.                 }
  14.         }
  15.         return lineCount;
  16. }
复制代码

作者: zy18692243338    时间: 2015-5-18 22:58
6666666666666666666666666666
作者: 守株人    时间: 2015-5-18 23:43
66666666666啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2