写入TXT内容对齐问题

LIZHIztt 2009-05-10 11:29:35
我现在要往一个txt里面写内容

比如有数据

a=["上海","北京","广州",呼和浩特"]
b=["1","2","3",4"]

写到文本中就是

WriteLine(a[i]+"\t"+b[i]);

例如这样:

上海 1
北京 2
广州 3
呼和浩特 4


但是TAB却对不齐
...全文
2048 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
rtdb 2009-05-10
  • 打赏
  • 举报
回复
WriteLine(a[i].PadRight(20)+b[i]);
rtdb 2009-05-10
  • 打赏
  • 举报
回复
这样啊,还是用空格对齐好了,假设a中最长不超过20,
那么全部按20补齐空格后再输出后面的数字就可以了。
LIZHIztt 2009-05-10
  • 打赏
  • 举报
回复
我的意思就是和 table 一样


上海 1
北京 2
呼和浩特 3
广州 4
乌鲁木齐 5
张家界 6

这样的方式对齐

不管前面的文字有多长 后面的数字始终是对齐的
yooyoozoo 2009-05-10
  • 打赏
  • 举报
回复
"\t\t\t"
zzxap 2009-05-10
  • 打赏
  • 举报
回复
页面显示换行
<%
response.write "<BR>"
response.write "换行1"
response.write "<BR>"
response.write "换行2"
response.write "<BR>"
%>
源代码换行
<%
response.write "<BR>"
response.write "换行3"
response.write Chr(13)
response.write "换行4"
%>
柳晛 2009-05-10
  • 打赏
  • 举报
回复
"\t\t\t"

制表符会根据前面字的多少而决定在哪一列,所以需要多个制表符连起来大于前面字符的长度才能对齐。
zzxap 2009-05-10
  • 打赏
  • 举报
回复
\n
路人乙e 2009-05-10
  • 打赏
  • 举报
回复
用tab不好,确实有时候对不齐
直接用空格
gomoku 2009-05-10
  • 打赏
  • 举报
回复
\t制表符可以有不同的解释,而空格则比较通用,更容易控制对齐。
WriteLine(string.Format("{0,-8}{1}", a[i], b[i]));


{0,-8}中的8指展位的长度,负号指左对齐。

genius_tong 2009-05-10
  • 打赏
  • 举报
回复
辰爸 2009-05-10
  • 打赏
  • 举报
回复
楼主想要什么效果啊?
我姓区不姓区 2009-05-10
  • 打赏
  • 举报
回复

string[] a = { "上海", "北京", "广州", "呼和浩特" };
string[] b = { "1", "2", "3", "4" };
int max = 0;
foreach (string s in a)
{
int length = System.Text.Encoding.Unicode.GetByteCount(s);
if (length > max)
max = length;
}
using (StreamWriter sw = new StreamWriter("F:\\BBB.txt"))
{
for (int i = 0; i < a.Length; i++)
{
List<byte> list = new List<byte>(System.Text.Encoding.Unicode.GetBytes(a[i]));
for (int j = list.Count; j < max + 4; j++)
{
list.Add(32);
list.Add(0);
}
sw.WriteLine(System.Text.Encoding.Unicode.GetString(list.ToArray()) + b[i]);
}
sw.Close();
}

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧