对字母打印数字

编程入门 行业动态 更新时间:2024-10-27 01:31:40
本文介绍了对字母打印数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想要波纹管格式的C#代码(函数). 其中A = 1,B = 2,C = 3,D = 4,...... Z = 26 AA = 27,AB = 28,AC = 29 ... AZ = 52 BA = 53,BB = 54,BC = 55,...... BZ = 78 等等... 打印输出类似. 字母A,数字为1 字母B,数字为2 依此类推...

I want c# code (function) for bellow formats. Where A=1, B=2, C=3, D=4, ......Z=26 AA= 27, AB=28,AC=29...... AZ=52 BA=53, BB=54,BC=55, ......BZ=78 And so on... print output like. Alphabet A, Number is 1 Alhphabet B, Number is 2 And so on...

推荐答案

public static string ConvertAlpha(int value) { const int a = (int)'A'; value = value - 1; var returnValue = new StringBuilder(); while (value > -1) { var remainder = value % 26; returnValue.Insert(0, (char)(a + remainder)); value = value / 26 - 1; } return returnValue.ToString(); } public static int ConvertNumber(string value) { const int a = (int)'A' - 1; int returnValue = 0; foreach (var character in value.ToUpper()) { returnValue *= 26; returnValue += (int)character - a; } return returnValue; }

似乎可以正常使用.

Seems to work right.

您可以将其视为26的基本格式,并可以根据字母的位置在第二位置使用26 *字母+在第一位置使用字母,依此类推. you can treat it as base 26 format and depending on the position of the alphabet you can use 26*alphabet at 2nd position+ alphabet at 1nd position and so on...

如何使用Math.DivRem(...)? 例如 How about using Math.DivRem(...)? E.g. public static string ToExcelName(int num) { List<char> digits = new List<char>(); do { int rem; num = Math.DivRem(num, 26, out rem); digits.Add(Convert.ToChar(65+rem)); } while (num != 0); return string.Join(null, digits.Reverse<char>()); }

干杯 安迪

Cheers Andi

更多推荐

对字母打印数字

本文发布于:2023-08-07 06:58:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1317619.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字母   数字

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!