.net字符串
string s="15817034063";
要求得到 5118074360F3
--------------------编程问答-------------------- 。。。。。。。。。
一般人不可能知道把 --------------------编程问答-------------------- 天知道是怎么得来的 --------------------编程问答-------------------- 不是啊,你们没有发现规律吗?这是个手机号码,就是两位两位换个位置,然后最后不够的补上F
--------------------编程问答-------------------- 因为做AT指令必须要这样的 --------------------编程问答-------------------- --------------------编程问答-------------------- 我不知道你这是什么神马规律 --------------------编程问答-------------------- --------------------编程问答-------------------- 那不是蛮简单的嘛..
--------------------编程问答-------------------- 比如说: 15817034063 15是一组,反过来就是51 81是一组,翻过来就是18.....到了最后只剩下一个3就补上F即 F3 拼起来就是5118074360F3 --------------------编程问答--------------------
class Program
{
static void Main(string[] args)
{
string s = "15817034063";
if (s.Length % 2 > 0) { s = s + "F"; }
char[] arr = s.ToCharArray();
for (int i = 0; i < arr.Length; i += 2)
{
char c = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = c;
}
string result = new string(arr);
Console.WriteLine(result);
}
}
--------------------编程问答--------------------
using System;
using System.Text;
namespace ProjectServer
{
class Program
{
static void Main(string[] args)
{
string s = "15817034063";//5118074360F3
StringBuilder newString = Exchange(s);
Console.WriteLine(newString);
}
static StringBuilder Exchange(string str)
{
StringBuilder sb = new StringBuilder(str);
if (sb.Length % 2 != 0)
sb.Append('F');
int length = sb.Length;
for (int i = 0; i < length; i += 2)
{
char ch = sb[i];
sb[i] = sb[i + 1];
sb[i + 1] = ch;
}
return sb;
}
}
}
--------------------编程问答--------------------
string s = "15817034063";
if (s.Length < 12)
{
s += "F";
}
char[] c= s.ToCharArray();
char temp = ' '; //赋一个空格字符
for (int i = 0; i < c.Length-1; i+=2)
{
temp = c[i];
c[i] = c[i + 1];
c[i + 1] = temp;
}
s = "";
for (int i = 0; i < c.Length; i++)
{
s += c[i].ToString();
}
MessageBox.Show(s);
这种挺简单~ --------------------编程问答-------------------- 没错啊 ,楼上有个哥们说的没错 ,的确就是两位数字在调换 ,到最后3是一位数 ,所以一位数转两位数加上一个f。 --------------------编程问答--------------------
--------------------编程问答--------------------
str2 = "15817034063";
str2 = str2.Length % 2 == 0 ? str2 : (str2 + "F");
int step = str2.Length;
System.Text.StringBuilder result = new System.Text.StringBuilder();
for (int i = 0; i < step; i+=2)
{
result.Append(str2[i + 1].ToString() + str2[i]);
}
return result.ToString();
private string test(string str)--------------------编程问答-------------------- 只是简单的字符串处理,很简单的 --------------------编程问答--------------------
{
if (str.Length % 2 == 1)
{
str += "F";
}
char[] c = str.ToCharArray();
char tmp = char.MinValue;
for (int i = 0; i < c.Length; i += 2)
{
tmp = c[i];
c[i] = c[i + 1];
c[i + 1] = tmp;
}
return new string(c);
}
public void resever()
{
string s = "15817034063";
char temp=' ';
if (s.Length % 2 != 0) { s += "F"; }
char[] len = s.ToCharArray();
for(int i=0;i<len.Length;i+=2)
{
temp = len[i];
len[i] = len[i + 1];
len[i + 1] = temp;
}
Console.WriteLine(len);
}
亲手验证,绝对正确,信誉保证! --------------------编程问答-------------------- --------------------编程问答-------------------- 貌似手机号码是固定位数的吧。11位,那不更简单了。前面每两位倒换,最后一位加上F倒换 --------------------编程问答--------------------
-----------------------------华丽的分割线——————————————————————————
再次验证了 实现不是问题 算法才是王道 --------------------编程问答--------------------
string s = "15817034063";
s += "FFFFFFFFFFFF";
char[] arry = s.ToCharArray(0, 12);
for (int i = 0; i < arry.Length; i+=2)
{
char t = arry[i];
arry[i] = arry[i + 1];
arry[i + 1] = t;
}
Console.WriteLine(arry);
补充:.NET技术 , C#