今天遇到的一个算发

原创 2006年05月20日 18:45:00

encode:

一字符串:如果字符小于0则直接拷贝;如果是数字则拷贝当前数字加一个后继字符串;如果是其他字母等直接拷贝;如果是_下划线则转换成/UL;

decode:解码

encode代码部分:
            strOld = this.textBox1.Text;
            strLeng = strOld.Length;
            char[] a=strOld.ToCharArray();
            for(int i=0;i<strLeng;i++)
            {
              
                intNow=a[i];
                if(intNow<intZero)
                {
                    strNew+=a[i]+"_";
                }
                if((intNow>intZero)&&(intNow<intNight))
                {
                    if (i == strLeng-1)
                    {
                        strNew += a[i] ;
                    }
                    else
                    {
                        int ab = Convert.ToInt32(a[i].ToString());
                        //MessageBox.Show(ab.ToString());
                        for (int j = 0; j < ab + 1; j++)
                        {
                            strNew += a[i + 1];
                        }
                        strNew += "_";
                    }
                }
                if(intNow>intNight)
                {
                    if (intNow != intheng)
                    {
                        strNew += a[i] + "_";
                    }
                    else
                    {
                        strNew += "//UL";
                    }
                }
               
            }
            this.textBox3.Text=strNew;

 

decode:

 string enStrOld = this.textBox3.Text.Replace("//UL","_");
            string enStrNew = "";
            char[] ena = enStrOld.ToCharArray();
            int[] enb=new int[50];
            int enbindex=0;
            int intLength = enStrOld.Length;
            for (int eni = 0; eni < intLength; eni++)
            {
                if (ena[eni] == intheng)
                {
                    enb[enbindex] = eni;
                    enbindex++;
                }
               
            }
            for (int k = 0; k < enbindex; k++)
            {
                int ent = enb[k];
                if (ena[ent - 1] == ena[ent - 2])
                {
                    if (k == 0)
                    {
                        enStrNew += enb[k] - 1;
                    }
                    else
                    {
                        int test = enb[k] - enb[k - 1] - 2;
                        if (test > 0)
                        {
                            enStrNew += test;
                        }
                    }
                }
                else
                {
                   
                    int encount = enb[k] - enb[k - 1] - 1;
                    if (encount == 0)
                    {
                        enStrNew += "_";
                    }
                    else
                    {
                        for (int entt = 0; entt < encount; entt++)
                        {
                            enStrNew += ena[enb[k - 1] + 1 + entt];
                        }
                    }
                }
            }
            enStrNew += ena[enStrOld.LastIndexOf("_") + 1];
            this.textBox2.Text = enStrNew;

思路:关键是解码时候需要用第二个数组存储需要解码中的特殊字符串"_"的位置,然后再分别计算下划线前的部门

private int intZero = (char)'0';
        private int intNight = (char)'9';
        private int intheng = (char)'_';
        private string strOld = "";
        private int strLeng;
        private int intNow;
        private string strNew="";

初学shell,今天遇到由wget下载到本地的网页源代码的乱码问题,无聊的写了一个转码的脚本

今天用wget想下载文件,结果下载了一堆本地的index.html文件,一查看全是乱码,然后百度了一下,网页的编码格式大概有三种: 1、utf-8 2、gb2312 3、gbk 要在网页源码中...

今天遇到了一个form表单的问题

function doSave(){ var cityName = ""; $("input[type='checkbox']:checked")...

记录今天遇到的问题,一个低级错误。。

今天在objc中国看了一篇文章,是关于如何让

那天在CSDN上看到一个网友在华为遇到的面试题是一道乘法题看似简其实并不是因为它们都超出了数据类型的范围,今天做了下加法希望对大家有所启示

bool jw = false;//两个数加起来是否要向前进一位     string result = "";//最后呈现的结果     protected void Button1_Click...

今天写python的一个定时关机小脚本遇到的问题

import wx import os import sys import time import threadingdef daojishi(ti): while ti>0: ...

【已更新】待会想说一个今天遇到的关于数组和线段的程序员逻辑

先占个坑

今天遇到了一个非常恶心的错误

栈溢出。 VC的默认栈的大小一般的1M或者是2M 很小  你开一个int a[1024/4]就栈溢出了 今天我竟然开了一个int a[1000][1000]   的数组 算一下 足足有将近4个G ...

今天去面试遇到了一个问题,左连接查询的问题

问:(左(外)连接)左连接查询主数据一定能查询到数据吗? 答:一定能? 答案是错误的,现在想想好傻,如果一定能查询到数据,连表查询条件有什么作用呢? 以下有两张表做了测试: user 表,里面有两条数...

今天遇到一个poi导入的问题 参考别人的写了一个

package com.rshz.excel.derive; import java.io.File; import java.io.FileInputStream; import java.io....

今天上传的一个重要文件

  • 2017年07月26日 15:16
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:今天遇到的一个算发
举报原因:
原因补充:

(最多只允许输入30个字)