ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

更改文字显示方向

2022-07-13 13:36:30  阅读:136  来源: 互联网

标签:文字 index string 更改 int list rowCount 方向 input


using System.Text;

string text = "你好,我是richard,我家在中国陕西,在没有汉字输入法起做用的时候输入的字母ladalkd,数字和字符都是半角的。";
string result = Change(text, 3, false);
Console.WriteLine(result);
Console.ReadKey();



static string Change(string text, int rowCount, bool fromLeft = false)
{
    var list = text.Select(p => p.ToString()).ToList();
    var yuShu = list.Count()%rowCount;
    for (int i = 0; i < rowCount- yuShu; i++)
    {
        list.Add(" ");
    }
    StringBuilder sb = new StringBuilder();
    int rowPerCount = list.Count()%rowCount==0 ? list.Count()/rowCount : list.Count()/rowCount+1;
    if (fromLeft ==true)
    {
        for (int i = 0; i < rowCount; i++)
        {
            for (int j = 0; j < rowPerCount; j++)
            {
                int index = j*rowCount+i;
                if (index>=list.Count())
                {
                    continue;
                }
                else
                {
                    sb.Append(ToSBC(list[index]));

                }
            }
            sb.AppendLine();
        }
    }
    else
    {
        for (int i = 0; i < rowCount; i++)
        {
            for (int j = rowPerCount-1; j >=0; j--)
            {
                int index = j*rowCount+i;
                if (index>=list.Count())
                {
                    continue;
                }
                else
                {
                    sb.Append(ToSBC(list[index]));

                }
            }
            sb.AppendLine();
        }
    }
    return sb.ToString();
}

//static string ToSBC(string input)
//{
//    // 半角转全角:
//    char[] c = input.ToCharArray();
//    for (int i = 0; i < c.Length; i++)
//    {
//        if (c[i] == 32)
//        {
//            c[i] = (char)12288;
//            continue;
//        }
//        if (c[i] < 127)
//        {
//            c[i] = (char)(c[i] + 65248);
//        }
//    }
//    return new string(c);
//}

static string ToSBC(string input)
{
    if (input.Length  ==  Encoding.Default.GetByteCount(input))
    {
        return $"{input} ";
    }
    else
    {
        return input;
    }
}

 

标签:文字,index,string,更改,int,list,rowCount,方向,input
来源: https://www.cnblogs.com/nanqinling/p/16473472.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有