How to improve the efficiency of string operations using asp.net

Source: Internet
Author: User
Tags chr ftp html encode html decode httpcontext
1. split the string using the split method.
In this case, the delimiter refers to dividing an existing string according to certain rules to obtain a new form of substring.
  
Example: the string "ftp: // admin: 11111@192.168.100.6" is the standard format for logging on to the ftp server. Here, admin is the user name,
1111 is the password and 192.168.100.6 is the IP address. Write a code to obtain the username, password, and server address in the string.
 
String str1 = @ "ftp: // admin: 1111@192.168.100.6 ";
Char [] sp = {'/',':','@'};
String [] temps tutorial plit = str1.split (sp );
String username = tempsplit [3];
String password = tempsplit [4];
String ip = tempsplit [5];
Note:Why does username start with tempsplit [3? If you do not know, you can use the following code for verification.
  
String str1 = @ "ftp: // admin: 1111@192.168.100.6 ";
Char [] sp = {'/',':','@'};
String [] tempsplit = str1.split (sp );
Foreach (string s in tempsplit)
{
Console. writeline (s );
}
2. Extract the string using the substring method.
In the above example, I used the string retrieval method this time. According to msdn, StringIndicates text, A seriesUnicode characters, CharIndicates OneUnicode character.
  
String str1 = @ "ftp: // admin: 1111@192.168.100.6 ";
Int index1 = str1.indexof ("ftp: //") + 6;
Int index2 = str1.lastindexof (":") + 1;
Int index3 = str1.indexof ("@") + 1;
Int index4 = str1.length;
Int usernamelength = index2-index1-1;
Int passwordlength = index3-index2-1;
Int iplength = index4-index3;
String username = str1.substring (index1, usernamelength );
String password = str1.substring (index2, passwordlength );
String ip = str1.substring (index3, iplength );
Console. writeline (username );
Console. writeline (password );
Console. writeline (ip );
Note:When using this method, I started to regard the second parameter as the end position, and encountered many difficulties during debugging. Do not make such low-level mistakes. When you are not fully familiar with a method, read msdn, baidu, and google first.
3. Construct (merge) the string using append.
What is needed here is StringbuildClass, StringbuildClass is the class that stores variable string values. When merging strings, you do not need to declare an additional string variable to store the results.
For example, when constructing an authentication string sent by http, we can use the append method to construct the datagram to be sent.
  
Stringbuilder sb = new stringbuilder ();
String username = "% d2 % bb % c2 % b7 % bf % f1 % ec % ad ";
String password = "e10adc3949ba59abbe56e057f20f883e ";
String str1 = "formhash = 3e58f988 & loginfield = username & username = ";
String str2 = "& password = ";
String str3 = "& questionid = 0 & amp; answer = & amp; cookietime = 2592000 ";
Sb. append (str1 );
Sb. append (username );
Sb. append (str2 );
Sb. append (password );
Sb. append (str3 );
Console. writeline (sb. tostring ());
Console. readkey ();

When operating on strings, there is a sharp Swiss Army knife "-Regular expression. I will share my learning results later.

Asp tutorial. net string operation base class (security, replacement, decomposition, etc)

* 1. Take the characters on the right of the string.
* 2. Replace the string on the right.
**************************************** ************************/
Using system;
Using system. data;
Using system. configuration;
Using system. web;
Using system. web. security;
Using system. web. ui;
Using system. web. ui. webcontrols;
Using system. web. ui. webcontrols. webparts;
Using system.web.ui.html controls;
Using system. text;
Namespace ec
{
/// <Summary>
/// Common function base class
/// </Summary>
Public class funobject
{
# Region replacement string
/// <Summary>
/// Function: Replace characters
/// </Summary>
/// <Param name = "strvalue"> string </param>
/// <Returns> replace 'string </returns>
Public static string filtersql (string strvalue)
{
String str = "";
Str = strvalue. replace ("''","");
Return str;
}
# Endregion
# Region converts the table content to html,
/// <Summary>
/// Function: convert the table content to html,
/// </Summary>
/// <Param name = "fstring"> html string </param>
/// <Returns> </returns>
Public static string htmlcode (string fstring)
{
String str = "";
Str = fstring. replace (">", "> ");
Str = fstring. replace ("<", "<");
Str = fstring. replace ("","");
Str = fstring. replace ("n", "<br/> ");
Str = fstring. replace ("r", "<br/> ");
Str = fstring. replace ("rn", "<br/> ");
Return str;
}
# Endregion
# Region: return value: & radic; or ×
/// <Summary>
/// Determine whether: return value: & radic; or *
/// </Summary>
/// <Param name = "B"> true or false </param>
/// <Returns> & radic; or × </returns>
Public static string judgement (bool B)
{
String s = "";
If (B = true)
S = "<B> <font color = #009900> & radic; </font> </B> ";
Else
S = "<B> <font color = # ff0000> × </font> </B> ";
Return s;
}
# Endregion
# Region truncated string
/// <Summary>
/// Function: truncates the string length.
/// </Summary>
/// <Param name = "str"> string to be intercepted </param>
/// <Param name = "length"> string length </param>
/// <Param name = "flg"> true: add..., flase: Do not add </param>
/// <Returns> </returns>
Public static string getstring (string str, int length, bool flg)
{
Int I = 0, j = 0;
Foreach (char chr in str)
{
If (int) chr> 127)
{
I + = 2;
}
Else
{
I ++;
}
If (I> length)
{
Str = str. substring (0, j );
If (flg)
Str + = "......";
Break;
}
J ++;
}
Return str;
}
# Endregion
# Region truncation string +...
/// <Summary>
/// Capture string +...
/// </Summary>
/// <Param name = "strinput"> </param>
/// <Param name = "intlen"> </param>
/// <Returns> </returns>
Public static string cutstring (string strinput, int intlen) // truncates a string
{
Asciiencoding ascii = new asciiencoding ();
Int intlength = 0;
String strstring = "";
Byte [] s = ascii. getbytes (strinput );
For (int I = 0; I <s. length; I ++)
{
If (int) s [I] = 63)
{
Intlength + = 2;
}
Else
{
Intlength + = 1;
}
Try
{
Strstring + = strinput. substring (I, 1 );
}
Catch
{
Break;
}
If (intlength> intlen)
{
Break;
}
}
// If yes, add half ellipsis
Byte [] mybyte = system. text. encoding. default. getbytes (strinput );
If (mybyte. length> intlen)
{
Strstring + = "... ";
}
Return strstring;
}
# Endregion
# Region string score function
/// <Summary>
/// String function
/// </Summary>
/// <Param name = "strid"> </param>
/// <Param name = "index"> </param>
/// <Param name = "separ"> </param>
/// <Returns> </returns>
Public string stringsplit (string strings, int index, string separ)
{
String [] s = strings. split (char. parse (separ ));
Return s [index];
}
# Endregion
# Region decomposition string is an array
/// <Summary>
/// String function
/// </Summary>
/// <Param name = "str"> string to be decomposed </param>
/// <Param name = "splitstr"> delimiter, which can be string type </param>
/// <Returns> character array </returns>
Public static string [] splitstr (string str, string splitstr)
{
If (splitstr! = "")
{
System. collections. arraylist c = new system. collections. arraylist ();
While (true)
{
Int thissplitindex = str. indexof (splitstr );
If (thissplitindex> = 0)
{
C. add (str. substring (0, thissplitindex ));
Str = str. substring (thissplitindex + splitstr. length );
}
Else
{
C. add (str );
Break;
}
}
String [] d = new string [c. count];
For (int I = 0; I <c. count; I ++)
{
D [I] = c [I]. tostring ();
}
Return d;
}
Else
{
Return new string [] {str };
}
}
# Endregion
# Region url encoding
/// <Summary>
/// Url encoding
/// </Summary>
/// <Param name = "str"> string </param>
/// <Returns> </returns>
Public static string urlencoding (string str)
{
Byte [] bytes = system. text. encoding. utf8.getbytes (str );
Return system. text. encoding. utf8.getstring (bytes). tostring ();
}
# Endregion
# Region obtain the configuration field value in web. config
/// <Summary>
/// Obtain global configuration parameters
/// </Summary>
/// <Param name = "key"> key name </param>
/// <Returns> parameter </returns>
Public static string getapp (string key)
{
System. configuration. appsettingsreader appr = new system. configuration. Etettingsreader ();
Try
{
String str = (string) appr. getvalue (key, typeof (string ));
If (str = null | str = "") return null;
Return str;
}
Catch (exception e ){}
Return null;
}
# Endregion
# Region returns a bit based on whether the input string is yes/no
/// <Summary>
/// Bit is returned based on whether the input string is yes/no
/// </Summary>
/// <Param name = "flg"> </param>
/// <Returns> </returns>
Public static int getbitbool (string flg)
{
Int str = 0;
Switch (flg. tolower ())
{
Case "yes ":
Str = 1;
Break;
Case "no ":
Str = 0;
Break;
Default:
Break;
}
Return str;
}
# Endregion
# Region html encoding
/// <Summary>
/// Html encoding
/// </Summary>
/// <Param name = "strinput"> </param>
/// <Returns> </returns>
Public static string htmlencode (string strinput)
{
String str;
Try
{
Str = httpcontext.current.server.html encode (strinput );
}
Catch
{
Str = "error ";
}
Return str;
}
/// <Summary>
/// Html decoding
/// </Summary>
/// <Param name = "strinput"> </param>
/// <Returns> </returns>
Public static string htmldecode (string strinput)
{
String str;
Try
{
Str = httpcontext.current.server.html decode (strinput );
}
Catch
{
Str = "error ";
}
Return str;
}
# Endregion
# Region checks whether a character is included in another character. If yes, true is returned. Otherwise, false is returned.
/// <Summary>
/// Check whether a character is in another character. If yes, true is returned. Otherwise, false is returned.
/// </Summary>
/// <Param name = "srcstring"> original string </param>
/// <Param name = "aimstring"> target string </param>
/// <Returns> </returns>
Public static bool isenglish (string srcstring, string aimstring)
{
Bool rev = true;
String chr;
If (aimstring = "" | aimstring = null) return false;
For (int I = 0; I <aimstring. length; I ++)
{
Chr = aimstring. substring (I, 1 );
If (srcstring. indexof (chr) <0)
{
Return false;
Break;
}
}
Return rev;
}
# Endregion
# Region check whether the string contains Chinese characters and Chinese characters
/// <Summary>
/// Check whether the string contains Chinese characters and Chinese characters
/// </Summary>
/// <Param name = "str"> string to be checked </param>
/// <Returns> Chinese string length </returns>
Public static int cnstringlength (string str)
{
Asciiencoding n = new asciiencoding ();
Byte [] B = n. getbytes (str );
Int l = 0; // l is the actual length of the string
For (int I = 0; I <= B. length-1; I ++)
{
If (B [I] = 63) // determines whether it is a Chinese character or full-legged symbol.
{
L ++;
}
}
Return l;
}
# Endregion
# Region: several characters on the right of the string
/// <Summary>
/// Take the characters on the right of the string
/// </Summary>
/// <Param name = "str"> string </param>
/// <Param name = "length"> several characters on the right </param>
/// <Returns> </returns>
Public static string getstrright (string str, int length)
{
String rev = "";
If (str. length <length)
{
Rev = str;
}
Else
{
Rev = str. substring (str. length-length, length );
}
Return rev;
}
# Endregion
# Region replace the string on the right
/// <Summary>
/// Replace the string on the right
/// </Summary>
/// <Param name = "str"> string </param>
/// <Param name = "strsrc"> string on the right </param>
/// <Param name = "straim"> string to be replaced </param>
/// <Returns> </returns>
Public static string repstrright (string str, string strsrc, string straim)
{
String rev = "";
If (getstrright (str, strsrc. length )! = Strsrc)
{
Rev = str;
}
Else
{
Rev = str. substring (0, str. length-strsrc. length). tostring () + straim. tostring ();
}
Return rev;
}
# Endregion
}
}

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.