c#小问题

yjq_120 2012-04-09 09:56:41
private void button1_Click(object sender, EventArgs e)
{
string Str1 = textBox1.Text;
char first = Str1[0]; //第一个字母
string Surplus = Str1.Substring(1); //剩下的字母个数
textBox1.Text = Surplus + first;
}
但是。我要的是在一个字符串里。没按一下按钮,从最后一个字符,移动第一位字符,其他的字符也跟着向右移动
...全文
116 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Alexander 2012-04-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
除了7楼,楼上全是垃圾代码。
我要看到我的项目内有人写这种代码直接就是开口骂人。
[/Quote]
-_-

有点同情你的下属……
cheng2005 2012-04-10
  • 打赏
  • 举报
回复
除了7楼,楼上全是垃圾代码。
我要看到我的项目内有人写这种代码直接就是开口骂人。
Alexander 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

textBox1.Text = textBox1.Text.SubString(1) + textBox1.Text.SubString(0, 1);
[/Quote]
建议1:
应先判断字符串长度,对空串调用SubString(1)和SubString(0,1)会抛异常。

建议2:
感觉上取单个字符最好用索引器,虽然没看过string类的源代码,但大致上分析得出:
索引器直接返回内部字符数组的对应元素(因此索引器越界会抛出数组越界异常IndexOutOfRangeException)
SubString函数除了循环部分会多消耗些系统资源外,还会在参数合法性的判断上耗费点时间(因此SubString函数越界不会抛出数组越界异常,而是抛出参数越界异常ArgumentOutOfRangeException)


private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length > 0)
textBox1.Text = textBox1.Text.Substring(1) + textBox1.Text[0];
}
mngzilin 2012-04-09
  • 打赏
  • 举报
回复
            string str = "我靠啊啊啊啊啊啊啊NHI埃弗拉";
str = str.Insert(0, str[str.Length - 1].ToString()).Remove(str.Length);
色拉油 2012-04-09
  • 打赏
  • 举报
回复
霸气[Quote=引用 3 楼 的回复:]

textBox1.Text = textBox1.Text.SubString(1) + textBox1.Text.SubString(0, 1);
[/Quote]
orochiheart 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
textBox1.Text = textBox1.Text.SubString(1) + textBox1.Text.SubString(0, 1);
[/Quote]
+1 很简洁
threenewbee 2012-04-09
  • 打赏
  • 举报
回复
textBox1.Text = textBox1.Text.SubString(1) + textBox1.Text.SubString(0, 1);
  • 打赏
  • 举报
回复
有一行没有改过来

void btn_Click(object sender, RoutedEventArgs e)
{
string text = textBox1.Text;
char last = text[text.Length - 1];
string other = text.Substring(0, text.Length - 1);
textBox1.Text = last + other;
}
  • 打赏
  • 举报
回复
我是这样理解你的意思的:
假设字符串是Hello,点击一次后变成oHell,再点击变成loHel。即最后一个字符每次右移一位,补到最左边。

void btn_Click(object sender, RoutedEventArgs e)
{
string text = textBox1.Text;
char last = text[text.Length - 1];
string other = text.Substring(0, text.Length - 1);
this.defaultTextBlock.Text = last + other;
}


110,537

社区成员

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

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

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