A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李大伟 高级黑马   /  2013-3-23 21:25  /  2073 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


大家帮忙看看,我这个打印制表符为什么不整齐呢,求详解,代码已经检查过了,没问题。

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-24 08:27

8 个回复

倒序浏览

回帖奖励 +5

你得把代码贴上来看看呀,光这么说谁知道什么问题呀
回复 使用道具 举报

回帖奖励 +5

请把代码贴出来,谢谢
我也出现过这样的情况,应该是你的toString方法有问题
  1. public String toString()
  2.         {
  3.                 return "student["+name+", "+ma+", "+cn+", "+en+"]";
  4.         }
复制代码
注意其中的那个逗号后面还要有个空格", ",我i用红色标出来了。

回复 使用道具 举报

回帖奖励 +5

感觉是循环或者输出有问题,不知道对不对
回复 使用道具 举报
跟制表符有关:一个制表符占八个字节
你数一下打印结果你会发现,每行的第二个字符串的开位是8的整数倍,这就是制表符的作用
回复 使用道具 举报
中间用制表符分隔,不能用单纯的空格
回复 使用道具 举报
谢谢,大家了, 我先试试
回复 使用道具 举报
黄玉昆 发表于 2013-3-23 21:52
请把代码贴出来,谢谢
我也出现过这样的情况,应该是你的toString方法有问题注意其中的那个逗号后面还要有 ...

兄台 我照你这个改了,确实有效,能仔细分析分析为什么吗?
回复 使用道具 举报
李大伟 发表于 2013-3-25 10:39
兄台 我照你这个改了,确实有效,能仔细分析分析为什么吗?

一个制表符占8个字节,制表符后面的字符串总是从8字节的整数倍位置开始,因为有些行开始的字符串已经超过了3个8字节所以后面跟着的第二个字符串只能从第4个8字节位置开始。原因上来说,是因为每行第一个字符串长度不一,就这个实例,可以在输出语句中多加2个制表符(\t)试试
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马