带标点符号转容易一些string test = "you are well!"; string[] words = test.Split(' '); Array.Reverse(words); string result = string.Join(" ", words); richTextBox2.Text = result; /*------输出-------- well! are you */不带标点符号转,需要明确规则,比如 a test, you are wall! 反转后结果是什么?
不带标点反转string test = "a test, you are well!"; Regex reg = new Regex(@"(?i)\b[a-z-]+\b(\s+[a-z-]+\b)*"); string result = reg.Replace(test, delegate(Match m) { string[] words = m.Value.Split(' '); Array.Reverse(words); return string.Join(" ", words); }); richTextBox2.Text = result; /*--------输出--------- test a, well are you! */
基本的算法吧char[] str = new char[字符串.length]for(int i = 0;i < 字符串.length;i++){ str[字符串.length -1 - i] = 字符串.charat(i);}return str
//使用linq也可以实现 void Main() { string s = "you are well!"; s = new string(s.ToCharArray().Reverse().ToArray()); var q =from t in s.Split(new char[] { ' ', '!' }) let m = t.ToCharArray().Reverse().ToArray() select new { m}; string result = "!"; foreach (var r in q) { result += new string(r.m)+" "; } Console.WriteLine(result); }// 结果: // ! well are you
先将字符串转换成 : llew era uoy然后再对每个单词进行倒置操作最后得到 ! well are you
分詞啊 有专门的开源项目~ 只针对这一句的话 先Split 再从2->0遍历数组
js代码 var s="you are well" var arr=s.split(' '); arr.reserve();//第一个和最后一个翻转位置 s=arr.join()+"!";
string[] words = test.Split(' ');
Array.Reverse(words);
string result = string.Join(" ", words);
richTextBox2.Text = result;
/*------输出--------
well! are you
*/不带标点符号转,需要明确规则,比如
a test, you are wall!
反转后结果是什么?
Regex reg = new Regex(@"(?i)\b[a-z-]+\b(\s+[a-z-]+\b)*");
string result = reg.Replace(test, delegate(Match m)
{
string[] words = m.Value.Split(' ');
Array.Reverse(words);
return string.Join(" ", words);
});
richTextBox2.Text = result;
/*--------输出---------
test a, well are you!
*/
//使用linq也可以实现
void Main()
{
string s = "you are well!";
s = new string(s.ToCharArray().Reverse().ToArray());
var q =from t in s.Split(new char[] { ' ', '!' })
let m = t.ToCharArray().Reverse().ToArray()
select new { m};
string result = "!";
foreach (var r in q)
{
result += new string(r.m)+" ";
}
Console.WriteLine(result);
}// 结果:
// ! well are you
只针对这一句的话 先Split 再从2->0遍历数组
var s="you are well"
var arr=s.split(' ');
arr.reserve();//第一个和最后一个翻转位置
s=arr.join()+"!";
String[] str = oldstr.split(" ");
String finalstr="";
for(int i=str.length-1;i>-1;i--)
{
finalstr=finalstr+str[i]+" ";
}
System.out.println(finalstr);
}