用C#怎么实现把数字转化成带圆圈格式的字符串

Pra_lijian 2009-06-15 01:21:08
如题,例:1->① 2->②.....
...全文
1643 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzy8788 2009-06-15
  • 打赏
  • 举报
回复

/// <summary>
/// 给数字加上圆圈。
/// </summary>
/// <param name="num">要加圆圈的数字。</param>
/// <returns></returns>
string NumAddCircle(int num)
{
if (num < 0) return string.Empty; //负数不处理。
if (num.ToString().Contains("0")) return string.Empty; //有0的不处理
string resultStr = string.Empty;
foreach (char str in num.ToString())
{
resultStr += (char)(9312+Int32.Parse(str.ToString())-1);
}
return resultStr;
}


有Ascii码那写起来就简单一点了,不过这种方法不能用啊,写出来玩的,除了画图不知道可有其他方法能解决。
我姓区不姓区 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 yzy8788 的回复:]

那我要劳烦这位弟兄告诉我一下,带圈字符的ascii码是多少啊?
随便①②③④⑤⑥⑦⑧⑨一个都行
[/Quote]
①为9312
我姓区不姓区 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 yzy8788 的回复:]
引用 7 楼 angel6709 的回复:
那也这样做:

Int32 i = 1234;
String s=i.ToString();

s=s.Replace('1', '①');
s=s.Replace('2', '②');
...


不知道大家有没有仔细观察过。楼主要实现的这种功能貌似不好实现啊。
因为没用0的带圈字符,如果他给的数字是5050,你该如何实现?
所以还是有一个画图的兄弟说的在理,直接画出来。还有一位仁兄说“画图如何返回字符串”,楼主貌似也没有说要返回字符串吧?能画到网页上…
[/Quote]

那请你看看楼主的标题……
Pra_lijian 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 yzy8788 的回复:]
引用 20 楼 suleil1 的回复:
只要得到你要的字符的ascii码就很简单的了,
if(c==ascii码)
执行转换


那我要劳烦这位弟兄告诉我一下,带圈字符的ascii码是多少啊?
随便①②③④⑤⑥⑦⑧⑨一个都行
[/Quote]对应的ascii code: ①9312 ②9313 ③9314 .... ⑪ 9322 ①-⑩字体系统会默认安装.10以上要下裁字体.
angel6709 2009-06-15
  • 打赏
  • 举报
回复
没零???如果12345467890的话可以这么处理:
retunn string.Empty
yzy8788 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 suleil1 的回复:]
只要得到你要的字符的ascii码就很简单的了,
if(c==ascii码)
执行转换
[/Quote]
那我要劳烦这位弟兄告诉我一下,带圈字符的ascii码是多少啊?
随便①②③④⑤⑥⑦⑧⑨一个都行
yzy8788 2009-06-15
  • 打赏
  • 举报
回复

/// <summary>
/// 给数字加上圆圈。
/// </summary>
/// <param name="num">要加圆圈的数字。</param>
/// <returns></returns>
string NumAddCircle(int num)
{
if (num < 0) return string.Empty; //负数不处理。
if (num.ToString().Contains("0")) return string.Empty; //有0的不处理
string[] CircleNum = { "①", "②", "③", "④", "⑤", "⑥", "⑦", "⑧", "⑨" };
string resultStr = string.Empty;
foreach (char str in num.ToString())
{
resultStr += CircleNum[Int32.Parse(str.ToString()) - 1];
}
return resultStr;
}


如果数字没零的话感觉可以这样处理一下咯~~~
暗淡亮点 2009-06-15
  • 打赏
  • 举报
回复
只要得到你要的字符的ascii码就很简单的了,
if(c==ascii码)
执行转换
Pra_lijian 2009-06-15
  • 打赏
  • 举报
回复
public string fun(int i)
{
//①的ascii code
int b = 9312;

char c = (char)(b+i-1);

return c.ToString();
}
可惜只能显示10以内的
yzy8788 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 angel6709 的回复:]
那也这样做:

Int32 i = 1234;
String s=i.ToString();

s=s.Replace('1', '①');
s=s.Replace('2', '②');
...
[/Quote]

不知道大家有没有仔细观察过。楼主要实现的这种功能貌似不好实现啊。
因为没用0的带圈字符,如果他给的数字是5050,你该如何实现?
所以还是有一个画图的兄弟说的在理,直接画出来。还有一位仁兄说“画图如何返回字符串”,楼主貌似也没有说要返回字符串吧?能画到网页上或者画到窗体上不就OK了。
angel6709 2009-06-15
  • 打赏
  • 举报
回复
只能switch case
Pra_lijian 2009-06-15
  • 打赏
  • 举报
回复
①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳
jinlingoo1 2009-06-15
  • 打赏
  • 举报
回复
private void Form1_Load(object sender, EventArgs e)
{
double d = 12121111;
label1.Text = numConvert(d.ToString());

}

private string numConvert(string oldStr)
{
string str = oldStr;
string newStr = "";
foreach (char s in str)
{
switch (s)
{
case '1':
newStr += "①";
break;
case '2':
newStr += "②";
break;
default:
newStr += s;
break;
}

}
return newStr;
}

没有try,楼主自己完善.
另附一句.你的结贴率太低...出来混不容易.及时结贴吧.
angel6709 2009-06-15
  • 打赏
  • 举报
回复
我靠,强晕,到底想怎么着??
zhxjx 2009-06-15
  • 打赏
  • 举报
回复
不懂。。
xuejie09242 2009-06-15
  • 打赏
  • 举报
回复
⑩是只有10个
⒇这还有20个呢,呵呵。能不能换种形式的表示法。要不,也只能自己作图来画了。
xuejie09242 2009-06-15
  • 打赏
  • 举报
回复
原来的是1,2,3。。。,转换成带圈的数字是为了显示,只要显示的时候能显示出带圈的数字就行了,这样就可以画图来实现,是不是可以这么理解?呵呵
zgke 2009-06-15
  • 打赏
  • 举报
回复
1 2 3 4 5 6 7 8 9 0 最多10个.... 你还能有多少呢
Pra_lijian 2009-06-15
  • 打赏
  • 举报
回复
研究ascii code 看能找到解决办法不?
我姓区不姓区 2009-06-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Pra_lijian 的回复:]
应该画图来实现.但我不知道怎么写?
[/Quote]
画图你怎么返回字符串
加载更多回复(7)

111,113

社区成员

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

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

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