每一列只写3个字
中文竖排是这个效果:面 码 码 没 问 有 是 排 可 和 , 的 字 ~ 求
  在 。 有 题 格 中 , 以 数 英 竖 符 实 助
  里 代 乱 , 式 文 但 竖 字 文 排 串 现 ~ 英文竖排ok:y v s p m j g d a
z w t q n k h e b
  x u r o l i f c 我原本预期是会出乱码的,为什么没有出乱码??代码:
 private void MakeItAncientChinese(string former)
        {
            //former;
            //char a=former[3];
            char[] arr = former.ToCharArray();
            //Array.Reverse(arr);
            int colum;
            if (arr.Length % 3 == 0)
            { colum = arr.Length / 3; }
            else
            { colum = arr.Length / 3 + 1; }
            //int colum =Math.Ceiling ();//3lie
            int len = colum * 2 * 3;
            char[] arr2=new char[len];
           // arr2[colum*2-1]=arr[0];            for (int i = 0; i < arr2.Length; i++)
            {
                arr2[i] = ' ';
            }            for (int i = 1; i <3;i++ )
            {
                arr2[colum*i*2-1]='\n';
            }            int j=2;
            int k=0;
            for (int i =1; i <=colum ; i++)
            {
                arr2[colum * 2 - j] = arr[k]; k++;
                if (k == arr.Length ) break;
                arr2[(colum * 2 - j) + colum * 2] = arr[k]; k++;
                if (k ==arr.Length ) break;
                arr2[(colum * 2 - j) + colum * 2 * 2] = arr[k]; k++;
                if (k ==arr.Length ) break;
                j += 2;
            }            string newstring = new string(arr2);
            textBox2.Text = newstring;
        }

解决方案 »

  1.   

    英文竖排粘贴到记事本里可以啊...
    再试一下
    j g d a
    k h e b
      i f c 
      

  2.   

    可以用CSS样式表实现竖排
    <html>
    <style type="text/css">
    <!--
    .fs {
    writing-mode:tb-rl;
    width:200px;
    height:400px;
    letter-spacing: 2px;
    }
    -->
    </style>
    <body>
    <div class="fs">正则表达式测试器   编码转换器   IP转换器   十六进制编码   脚本技术,电子书,正则表达式简介,JScript,VBScript   MD5加密</div>
    </body>
    </html>
    CSS 竖排
      

  3.   

    语法: 
     
    writing-mode : lr-tb | tb-rl 
     
    参数: 
     
    lr-tb : 左-右,上-下 
    tb-rl : 上-下,右-左 
     
    说明: 
     
    设置或检索对象的内容块固有的书写方向。西方语言确省的是左-右,上-下的书写方式。但是亚洲语言常有上-下,右-左的书写方式。 
    当此属性值发生变化时,text-align属性与vertical-align属性的作用也将发生变化。 
    对应的脚本特性为writingMode。请参阅我编写的其他书目。CSS2.0中文手册
      

  4.   


    因为C#的字符串是 Unicode,一个中文字符就是一个字符,而不是两个字符,所以没有出乱码。
    如果你的中文字符串中没有~,就会排得很整齐了。
      

  5.   

    to 2,3楼:
    不是web,winform
      

  6.   

    呵呵 
     StreamReader
     StreamWriter
     这两个对象应该可以实现你的功能
    导入.SYSTEM.IO;
    至于排序中文.也有方法的,看字节码.
     网上一搜一打堆
      

  7.   

    只能将英文字母和标点替换一下吧?比如在前面加上一个半角的空格。for (int i = 0; i < arr2.Length; i++)
    {
      arr2[i] = ' ';//这里用全角的中文空格
    }........//在半角字符前加半角空格
    Regex re = new Regex("([\x00-\xff])");
    newstring = re.Replace(newstring, " $1");? 出  4 什 的  A  ?  5 本 我 
    ? 乱  8 么 ,  , 出 是 预 原 
      码 有 没 为 码 乱 会 期  o 
      

  8.   

    ababababab
    啊呀不一样确实宽度不一样
      

  9.   


    一种折衷的方法是把字符串的半角字符全部转换为全角:// 编译时需要添加引用:Microsoft Visual Basic .NET Runtime 组件 (Microsoft.VisualBasic.dll)
    // 或者是在命令行下用csc.exe的话,则是:csc /r:Microsoft.VisualBasic.dll Program.cs
    s = Microsoft.VisualBasic.Strings.StrConv(s, Microsoft.VisualBasic.VbStrConv.Wide, 0); 
      

  10.   

    TO wuyi8808 :
    非常感谢!!
    老大是不是把类库都背过了啊......ps:C#里面有没有对应的?