当前位置:编程学习 > C#/ASP.NET >>

.net字符串




  


            string s="15817034063";

           要求得到   5118074360F3




--------------------编程问答-------------------- 。。。。。。。。。
一般人不可能知道把 --------------------编程问答--------------------  天知道是怎么得来的 --------------------编程问答-------------------- 不是啊,你们没有发现规律吗?这是个手机号码,就是两位两位换个位置,然后最后不够的补上F
--------------------编程问答-------------------- 因为做AT指令必须要这样的 --------------------编程问答-------------------- --------------------编程问答-------------------- 我不知道你这是什么神马规律 --------------------编程问答-------------------- --------------------编程问答-------------------- 那不是蛮简单的嘛..



    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);
        }

    }

--------------------编程问答--------------------    比如说:   15817034063    15是一组,反过来就是51  81是一组,翻过来就是18.....到了最后只剩下一个3就补上F即 F3 拼起来就是5118074360F3 --------------------编程问答--------------------

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);
--------------------编程问答--------------------
引用 8 楼 karascanvas 的回复:
那不是蛮简单的嘛..


C# code


    class Program
    {

        static void Main(string[] args)
        {
            string s = "15817034063";

            if (s.Length % 2 > 0) { s = s + "F"; }……



这种挺简单~ --------------------编程问答-------------------- 没错啊 ,楼上有个哥们说的没错 ,的确就是两位数字在调换 ,到最后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倒换 --------------------编程问答--------------------
引用 13 楼 woaizuguo 的回复:
没错啊 ,楼上有个哥们说的没错 ,的确就是两位数字在调换 ,到最后3是一位数 ,所以一位数转两位数加上一个f。

-----------------------------华丽的分割线——————————————————————————
引用 17 楼 zzmsyt 的回复:
C# code

public void resever()
        {
            string s = "15817034063";
            char temp=' ';
            if (s.Length % 2 != 0) { s += "F"; }
            char[] len = s.ToCharArray();
 ……

再次验证了 实现不是问题 算法才是王道 --------------------编程问答--------------------

            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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,