阳光地带

风雨雷电

博客园 首页 新随笔 联系 订阅 管理
C#中Split分隔字符串的应用 
1、用字符串分隔: 
using System.Text.RegularExpressions;

 

string str="aaajsbbbjsccc";

string[] sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);

foreach (string i in sArray) Response.Write(i.ToString() + "<br>");



输出结果:
aaa
bbb
ccc
 

2、用多个字符来分隔:

string str="aaajbbbscccjdddseee";

string[] sArray=str.Split(new char[2]{'j','s'}); 

foreach(string i in sArray) Response.Write(i.ToString() + "<br>"); 



输出结果:
aaa
bbb
ccc
ddd
eee
 

3、用单个字符来分隔:

string str="aaajbbbjccc";

string[] sArray=str.Split('j');

foreach(string i in sArray) Response.Write(i.ToString() + "<br>");

输出结果:
aaa
bbb
ccc


==================
子窗体返回主窗体 

 
///<summary> 
 
///名称:redirect 
 
///功能:子窗体返回主窗体 
 
///参数:url 
 
///返回值:空 
 
///</summary> 

 public void redirect(string url,Page page) 
 

  
if ( Session["IfDefault"]!=(object)"Default"
  
{     
   page.RegisterStartupScript(
"","<script>window.top.document.location.href='"+url+"';</script>"); 
  }
 
 }
 

 判断是否为数字 

 
/// <summary> 
 
/// 名称:IsNumberic 
 
/// 功能:判断输入的是否是数字 
 
/// 参数:string oText:源文本 
 
/// 返回值: bool true:是 false:否 
 
/// </summary> 

  
 
public bool IsNumberic(string oText) 
 

  
try 
  

   
int var1=Convert.ToInt32 (oText); 
   
return true
  }
 
  
catch 
  

   
return false
  }
 
 }
 

 获得字符串实际长度(包括中文字符) 

 
//获得字符串oString的实际长度 
 public int StringLength(string oString) 
 

  
byte[] strArray=System.Text .Encoding.Default .GetBytes (oString); 
  
int res=strArray.Length ; 
  
return res; 
 }
 

 将回车转换为TAB 

 
//当在有keydown事件的控件上敲回车时,变为tab 
 public void Tab(System.Web .UI.WebControls .WebControl webcontrol) 
 

  webcontrol.Attributes .Add (
"onkeydown""if(event.keyCode==13) event.keyCode=9"); 
 }
 

 datagrid分页中如果删除时出现超出索引 

 
public void jumppage(System.Web.UI.WebControls.DataGrid dg) 
 

  
int int_PageLess; //定义页面跳转的页数 
  
//如果当前页是最后一页 
  if(dg.CurrentPageIndex == dg.PageCount-1
  

   
//如果就只有一页 
   if(dg.CurrentPageIndex == 0
   

    
//删除后页面停在当前页 
    dg.CurrentPageIndex = dg.PageCount-1;    
   }
 
   
else 
   

    
//如果最后一页只有一条记录 
    if((dg.Items.Count % dg.PageSize == 1|| dg.PageSize == 1
    

     
//把最后一页最后一条记录删除后,页面应跳转到前一页 
     int_PageLess = 2
    }
 
    
else      //如果最后一页的记录数大于1,那么在最后一页删除记录后仍然停在当前页 
    
     int_PageLess 
= 1
    }
 
    dg.CurrentPageIndex 
= dg.PageCount - int_PageLess; 
   }
 
  }
 
 }



*/

//Base64编码
public string EncodeBase64(string code_type,string code)
  
{
   
string encode = "";
   
byte[] bytes = Encoding.GetEncoding(code_type).GetBytes(code);
   
try
   
{
    encode 
= Convert.ToBase64String(bytes);
   }

   
catch
   
{
    encode 
= code;
   }

   
return encode;
  }




 c#的一些字符串的经验
//获得汉字的区位码 
byte[] array = new byte[2]; 
array 
= System.Text.Encoding.Default.GetBytes(""); 

int i1 = (short)(array[0- '\0'); 
int i2 = (short)(array[1- '\0'); 

//unicode解码方式下的汉字码 
array = System.Text.Encoding.Unicode.GetBytes(""); 
i1 
= (short)(array[0- '\0'); 
i2 
= (short)(array[1- '\0'); 

//unicode反解码为汉字 
string str = "4a55"
string s1 = str.Substring(0,2); 
string s2 = str.Substring(2,2); 

int t1 = Convert.ToInt32(s1,16); 
int t2 = Convert.ToInt32(s2,16); 

array[
0= (byte)t1; 
array[
1= (byte)t2; 

string s = System.Text.Encoding.Unicode.GetString(array); 

//default方式反解码为汉字 
array[0= (byte)196
array[
1= (byte)207
= System.Text.Encoding.Default.GetString(array); 

//取字符串长度 
= "iam方枪枪"
int len = s.Length;//will output as 6 
byte[] sarr = System.Text.Encoding.Default.GetBytes(s); 
len 
= sarr.Length;//will output as 3+3*2=9 

//字符串相加 
System.Text.StringBuilder sb = new System.Text.StringBuilder(""); 
sb.Append(
""); 
sb.Append(
"am "); 
sb.Append(
"方枪枪"); 


string fox; 
fox.ToLower()转化成小写字母 
fox.ToUpper()转化成大写字母 
fox.Trim()删除前后空格 
fox.Trim(trimChars)删除其它字符 
fox.TrimStart()删除前空格 
fox.TrimEnd()删除后空格 
fox.PadLeft(
10)增加左边空格,使字串达到某长度。 
fox.PadRight(
10)增加右边空格,使字串达到某长度。 
fox.PadX(
10,'-')增加其它字符,使字串达到某长度。X指:Left/Right 
fox.Split(
' ')将字串分解成数组 

//格式化 
string sf=string.Format("{0}年{1}月{2}日 {3}时{4}分",temp.Year,temp.Month,temp.Day,currTime.TruantTime.Hour,currTime.TruantTime.Minute); 

//一些正则表达式 
Internet地址表达式 
http:
//([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? 
Email地址表达式 
\w
+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 
邮编 
\d
{6} 
电话号码 
(\(\d
{3}\)|\d{3}-)?\d{8} 

//分隔字符串 
string total="aaa,bbb,ccc,dddd"
string[]strArray; 
char[]charArray=new char[]{','}
strArray
=total.Split(charArray); 

//日期 
DateTime t1 = new DateTime(2002,5,30); 
DateTime t2 
= new DateTime(2002,5,23); 
TimeSpan diff
=t1-t2; 
MessageBox.Show(diff.Days.ToString( 

System.DateTime.Now.ToString() 

DateTime d1
=Convert.ToDateTime("2003-01-01 18:20:01"); 
string s=d1.ToString("yyyy-MM-dd HH:mm:ss"); 

//目录 
Environment.CurrentDirectory 
Application.StartupPath  

//Base64解码
public string DecodeBase64(string code_type,string code)
  
{
   
string decode = "";
   
byte[] bytes = Convert.FromBase64String(code);
   
try
   
{
    decode 
= Encoding.GetEncoding(code_type).GetString(bytes);
   }

   
catch
   
{
    decode 
= code;
   }

   
return decode;
  }



//将querystirng转换成url:
public static string GetRedirectUrl(NameValueCollection queryString)
        
{
            
string redirectUrl = string.Empty;
            
int counter = 0;
            
foreach(string key in queryString.Keys)
            
{                
                redirectUrl 
+= string.Format("{0}{1}={2}", (counter>0)?"&":"", key, queryString[key]);
                counter
++;
            }

            
return redirectUrl;
        }



    }
}
一. 显示消息对话框类 

   做项目时总免不了要弹出对话框,或提示用户,或做用户确认。像WinForm下的MessageBox一样很方便,但web下是不是也可以实现呢,答案是肯定的,我简单总结了一下并封装到类,在项目里像WinForm的MessageBox那样直接调用就可以,也可以把它编译成dll作为组件直接调用,并且它也没有弹出对话框时的大白屏现象:)。 

     
/// <summary> 

     
/// 显示消息提示对话框。 


     
/// 2005.10.1 

     
/// </summary> 


     
public class MessageBox 

     
{        

         
private  MessageBox() 

         
{             

         }
 

         
/// <summary> 

         
/// 显示消息提示对话框 

         
/// </summary> 

         
/// <param name=page>当前页面指针,一般为this</param> 

         
/// <param name=msg>提示信息</param> 


         
public static void  Show(System.Web.UI.Page page,string msg) 

         


              page.RegisterStartupScript(message,
<script language='javascript' defer>alert('+msg.ToString()+');</script>); 

         }
 

         
/// <summary> 

         
/// 控件点击消息确认提示框 

         
/// </summary> 

         
/// <param name=page>当前页面指针,一般为this</param> 

         
/// <param name=msg>提示信息</param> 


         
public static void  ShowConfirm(System.Web.UI.WebControls.WebControl Control,string msg) 

         


              
//Control.Attributes.Add(onClick,if (!window.confirm('+msg+')){return false;}); 

              Control.Attributes.Add(onclick, 
return confirm(' + msg + ');) ; 

         }
 

         
/// <summary> 

         
/// 显示消息提示对话框,并进行页面跳转 

         
/// </summary> 

         
/// <param name=page>当前页面指针,一般为this</param> 

         
/// <param name=msg>提示信息</param> 

         
/// <param name=url>跳转的目标URL</param> 


         
public static void ShowAndRedirect(System.Web.UI.Page page,string msg,string url) 

         


              StringBuilder Builder
=new StringBuilder(); 

              Builder.Append(
<script language='javascript' defer>); 

              Builder.AppendFormat(alert(
'{0}');,msg); 

              Builder.AppendFormat(top.location.href
='{0}',url); 

              Builder.Append(
</script>); 

              page.RegisterStartupScript(message,Builder.ToString()); 


 
         }
 

         
/// <summary> 

         
/// 输出自定义脚本信息 

         
/// </summary> 

         
/// <param name=page>当前页面指针,一般为this</param> 

         
/// <param name=script>输出脚本</param> 


         
public static void ResponseScript(System.Web.UI.Page page,string script) 

         


              page.RegisterStartupScript(message,
<script language='javascript' defer>+script+</script>); 

         }
 

     }



二.页面数据验证类

做项目,特别做MIS,更避免不了有用户输入数据需要做有效性验证,这里我总结封装了一个页面数据校验的工具类,用起来也是很方便。 

     
/// <summary> 

     
/// 页面数据校验类 

     
/// 李天平 

     
/// 2004.8 

     
/// </summary> 


     
public class PageValidate 

     


         
private static Regex RegNumber = new Regex(^[0-9]+$); 

         
private static Regex RegNumberSign = new Regex(^[+-]?[0-9]+$); 

         
private static Regex RegDecimal = new Regex(^[0-9]+[.]?[0-9]+$); 

         
private static Regex RegDecimalSign = new Regex(^[+-]?[0-9]+[.]?[0-9]+$); //等价于^[+-]?\d+[.]?\d+$ 

         
private static Regex RegEmail = new Regex(^[\\w-]+@[\\w-]+\\.(com|net|org|edu|mil|tv|biz|info)$);//w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样 

         
private static Regex RegCHZN = new Regex([\u4e00-\u9fa5]); 


 
         
public PageValidate() 

         


         }
 

         
数字字符串检查 


 
         
中文检测 


 
         
邮件地址 


 
         
其他 

}
 
在Textbox的輸入中﹐我們常常需要控制輸入的類型﹐比如說只能輸入數字﹐當然實現的方法很多﹐我總結了一下我做過的一些項目﹐我常會使用以下這三種﹕
1﹑使用TryCatch
        
private static bool IsNumeric(string itemValue,int intFLag)
        
{
            
try
            
{
                
int i = Convert.ToInt32(itemValue);
                
return true;
            }

            
catch
            
{
                
return false;
            }

        }
2﹑使用正則表達式
using System.Text.RegularExpressions;
        
         
private static bool IsNumeric(string itemValue) 
        
{
            
return (IsRegEx("^(-?[0-9]*[.]*[0-9]{0,3})$", itemValue));
        }
 

        
private static bool IsRegEx(string regExValue, string itemValue) 
        
{
            
try 
            
{
                Regex regex 
= new System.Text.RegularExpressions.Regex(regExValue);
                
if (regex.IsMatch(itemValue)) return true;
                
else                          return false;
            }

            
catch (Exception ) 
            
{
                
return false;
            }

            
finally 
            
{
            }

        }


3﹑判斷輸入的keyCode
        
public static bool IsNumeric(System.Windows.Forms.KeyPressEventArgs e)
        
{
            
if ((e.KeyChar  >= (char)48 && e.KeyChar<=(char)57|| 
                 e.KeyChar 
==(char)8 || e.KeyChar ==(char)45 || e.KeyChar ==(char)47)
            
{
            }

            
else
            
{
    e.Handled
=true;  
            }

            
return true;
        }
posted on 2007-04-29 15:10  阳光地带  阅读(1814)  评论(0编辑  收藏  举报