我一串天天气预报,我在处理后,每行显示相同长度的文字,但是里面有数字和符号,这样就显得每一行对不齐,有什么办法让他们对齐呢String htmlCode="晴间少云,20℃~29℃,东北风2-3级,相对湿度最大70%,最小38%,火灾危险信号为红色"; int len=htmlCode.length();for(int i=0;i<len;i++){
if ((i%8==0)&&(i!=0)){
  str.append(htmlCode.charAt(i)+"</br>");
}else{
  str.append(htmlCode.charAt(i));
}

解决方案 »

  1.   

    用System.out.printf()或System.out.format()
      

  2.   

    因为这里面有全角字符和半角字符,并不能这样添加,在 Java 中全角和半角字符都算作一个字。
    参考以下的代码。如果要在页面上对齐的话,字体最好使用宋体。如果要避免在行首出现标点符号的话,可以自行改进一下。public class Test { public static void main(String[] args) {
    String str = "晴间少云,20℃~29℃,东北风2-3级,相对湿度最大70%,最小38%,火灾危险信号为红色";
    System.out.println(separate(str, 20));
    } public static String separate(String input, int len) {
    StringBuffer sb = new StringBuffer(len);
    int count = 0;
    char[] chars = input.toCharArray();
    for (int i = 0; i < chars.length; i++) {
    char c = chars[i];
    sb.append(c);
    count = (c <= 0xff) ? count + 1 : count + 2;
    if (count >= len) {
    sb.append("<br/>");
    count = 0;
    }
    }
    return sb.toString();
    }
    }
      

  3.   

    问题已解决,能不能告诉我一段代码是什么意思啊,虚心学习c <= 0xff
      

  4.   

    对于汉字来说,可以近似地把 0xff 以下的字符都看作是半角字符,也就是 \u00FF。
    近似地把 0xff 以上的字符看作是全角字符(实际上不是这样的,因为 0xff 以上还
    有很多其他语言的字符也是半角的,不过基本上用不到)。