java 单个反斜杆 处理

二个反斜杆 替换成一个反斜杆 org.apache.commons.lang.StringUtils.replace(testStr,"//", "");

 在JAVA里。“//”代表一个反斜杆 在正则表达式中的反斜杆就变成4根反斜杆了( )

testStr.replaceAll(" ", " ");//这样就把/换成//这个了在接收输入的时候,才这个做。

当/(一个反斜杆)结束,并且后面跟了一个双引号。则后面那个会被转意掉,好象没有/一样。处理办法有二种。

第一。在 反斜杆后加空格

第二。org.apache.commons.lang.StringUtils.replace(testStr,"//", "");

 

public static void main(String [] args){
 

 String   testStr= "c://Java";
 System.out.println(testStr);
// testStr   =   testStr.replaceAll(" ", " ");//这样就把/换成//这个了
// testStr   =   testStr.replace(" ", "// // ");//这样就把/换成//这个了
 if(testStr.lastIndexOf("//")==0)
 testStr = org.apache.commons.lang.StringUtils.replace(testStr,"//", "");
 System.out.println(testStr);
 System.out.println( " ");
}

 

 

 

 

/*
 *####################################################################
 *   Copyright (C) 2000-2008 SplashNote Systems, Inc.
 *      ALL RIGHTS RESERVED
 *####################################################################
 */


package com.splashnote.util;

import java.security.SecureRandom;
import java.util.regex.Matcher;

import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.Perl5Matcher;
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.MalformedPatternException;

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;

public class SNStringUtils {
private static final String PASSWORD_CRYPT_KEY = "__splashnote_";
private final static String DES = "DES";
private static final String letter_number_underline_regexp = "^//w+$";
private static String[][] FilterChars={{"<","<"},{">",">"},{" "," "},{"/"","""},{"&","&"},
    {"/","/"},{"/"", "/""},{"","\"},{"/n","
"},{"/'","'"}};

private static String[][] FilterCharsForComment={{"","\"},{"/n","
"},{"<","<"},{">",">"},{" "," "},{"/"","""},
    {"/","/"},{"/'","'"},{"&","&"}};

private final static String[] hex = { "00", "01", "02", "03", "04", "05",
    "06", "07", "08", "09", "0A", "0B", "0C", "0D", "0E", "0F", "10",
    "11", "12", "13", "14", "15", "16", "17", "18", "19", "1A", "1B",
    "1C", "1D", "1E", "1F", "20", "21", "22", "23", "24", "25", "26",
    "27", "28", "29", "2A", "2B", "2C", "2D", "2E", "2F", "30", "31",
    "32", "33", "34", "35", "36", "37", "38", "39", "3A", "3B", "3C",
    "3D", "3E", "3F", "40", "41", "42", "43", "44", "45", "46", "47",
    "48", "49", "4A", "4B", "4C", "4D", "4E", "4F", "50", "51", "52",
    "53", "54", "55", "56", "57", "58", "59", "5A", "5B", "5C", "5D",
    "5E", "5F", "60", "61", "62", "63", "64", "65", "66", "67", "68",
    "69", "6A", "6B", "6C", "6D", "6E", "6F", "70", "71", "72", "73",
    "74", "75", "76", "77", "78", "79", "7A", "7B", "7C", "7D", "7E",
    "7F", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89",
    "8A", "8B", "8C", "8D", "8E", "8F", "90", "91", "92", "93", "94",
    "95", "96", "97", "98", "99", "9A", "9B", "9C", "9D", "9E", "9F",
    "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "AA",
    "AB", "AC", "AD", "AE", "AF", "B0", "B1", "B2", "B3", "B4", "B5",
    "B6", "B7", "B8", "B9", "BA", "BB", "BC", "BD", "BE", "BF", "C0",
    "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "CA", "CB",
    "CC", "CD", "CE", "CF", "D0", "D1", "D2", "D3", "D4", "D5", "D6",
    "D7", "D8", "D9", "DA", "DB", "DC", "DD", "DE", "DF", "E0", "E1",
    "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "EA", "EB", "EC",
    "ED", "EE", "EF", "F0", "F1", "F2", "F3", "F4", "F5", "F6", "F7",
    "F8", "F9", "FA", "FB", "FC", "FD", "FE", "FF" };

  private final static byte[] val = { 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x00, 0x01,
    0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
    0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F };

public static String getEnParam(String src,String Param) {
 if (src==null)
  return null;
 String[] parts = decrypt(src).split("&");
 for (int i=0;i  String part=parts[i];
  String[] value=part.split("=");
  if (value[0].equals(Param)) {
   return value[1];
  }
 }
 
 return null;
 
}


public static byte[] encrypt(byte[] src, byte[] key)throws Exception {

 SecureRandom sr = new SecureRandom();


 DESKeySpec dks = new DESKeySpec(key);

 

 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);

 SecretKey securekey = keyFactory.generateSecret(dks);


 Cipher cipher = Cipher.getInstance(DES);


 cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);


 return cipher.doFinal(src);

}

        
public static byte[] decrypt(byte[] src, byte[] key)throws Exception {

 SecureRandom sr = new SecureRandom();
    DESKeySpec dks = new DESKeySpec(key);

    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);

    SecretKey securekey = keyFactory.generateSecret(dks);

    Cipher cipher = Cipher.getInstance(DES);

     cipher.init(Cipher.DECRYPT_MODE, securekey, sr);

     return cipher.doFinal(src);

}

public final static String decrypt(String data){

   try {
          return new String(decrypt(hex2byte(data.getBytes()),
          PASSWORD_CRYPT_KEY.getBytes()));
          }catch(Exception e) {
            }
          return null;
}

public final static String encrypt(String src){

   try {
         return byte2hex(encrypt(src.getBytes(),PASSWORD_CRYPT_KEY.getBytes()));
       }catch(Exception e) {
       }

             return null;

           }
public static String byte2hex(byte[] b) {
     String hs = "";

     String stmp = "";
     for (int n = 0; n < b.length; n++) {

         stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));

         if (stmp.length() == 1)
              hs = hs + "0" + stmp;
          else
              hs = hs + stmp;

     }

     return hs.toUpperCase();
}

           
public static byte[] hex2byte(byte[] b) {

     if((b.length%2)!=0)

          throw new IllegalArgumentException("length is error");

      byte[] b2 = new byte[b.length/2];

      for (int n = 0; n < b.length; n+=2) {

           String item = new String(b,n,2);

            b2[n/2] = (byte)Integer.parseInt(item,16);

         }

      return b2;
 }

public static boolean isGoodScreenName(String screenName) {
 return isHardRegexpValidate(screenName, letter_number_underline_regexp);
}

private static boolean isHardRegexpValidate(String source, String regexp) {
 try {
  PatternCompiler compiler = new Perl5Compiler();
  PatternMatcher matcher = new Perl5Matcher();
  Pattern hardPattern = compiler.compile(regexp);
  return matcher.contains(source, hardPattern);
 } catch (MalformedPatternException e) {
  e.printStackTrace();
 }
 
 return false;
}


public static String stringConnect(String[] strings,String spilit_sign){
    String str="";
    for(int i=0;i      str+=strings[i]+spilit_sign;
    }
    return str;
  }


public static String stringFilter(String str){
 if (str!=null)
 for (int i=0;i  str=str.replaceAll(FilterChars[i][0], FilterChars[i][1]);
 }
 else
  str="";
 return str;
  }

public static String stringTrans(String str){
 if (str!=null)
 for (int i=0;i  str=str.replaceAll(FilterChars[i][1], FilterChars[i][0]);
 }
 else
  str="";
 return str;
  }

public static String stringFilterForComment(String str){
 if (str!=null)
 for (int i=FilterCharsForComment.length-1;i>=0;i--) {
  str=str.replaceAll(FilterCharsForComment[i][0], FilterCharsForComment[i][1]);
 }
 else
  str="";
 return str;
  }

public static String stringTransForComment(String str){
 if (str!=null)
 for (int i=0;i  str=str.replaceAll(FilterCharsForComment[i][1], FilterCharsForComment[i][0]);
 }
 else
  str="";
 return str;
  }

public static String[] stringSpilit(String str,String spilit_sign){
    String[] spilit_string=str.split(spilit_sign);
    if(spilit_string[0].equals(""))
    {
      String[] new_string=new String[spilit_string.length-1];
      for(int i=1;i        new_string[i-1]=spilit_string[i];
        return new_string;
    }
    else
      return spilit_string;
  }

public static String getFixedWidthContent (String content,int limitWidth, String quoteSpec){
    //String input = "

ssss  5678
";
 
 content = content.replaceAll(""", "'");
 String input = content;
 String quoteReplace="'";
 if (quoteSpec == null){
  quoteSpec = "'|/"";
 }else {
  
  quoteReplace = quoteSpec;
 }
    String patternString = "width=["+quoteSpec+"](//d*)["+quoteSpec+"]";
   
    java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(patternString, java.util.regex.Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(input);
    StringBuffer sbuf = new StringBuffer();
    while (matcher.find())
    {
     
   
       int start = matcher.start();
       int end = matcher.end();
      String match = input.substring(start, end);
     
      try{
       int width = Integer.parseInt(matcher.group(1));
      
       if (width>limitWidth){
        matcher.appendReplacement(sbuf, "width="+quoteReplace+limitWidth+quoteReplace);
       }else{
       
       }
      }catch(java.lang.NumberFormatException nfe){
       matcher.appendReplacement(sbuf, "width="+quoteReplace+limitWidth+quoteReplace);
      }
    }
   
    matcher.appendTail(sbuf);
    content = sbuf.toString();
    content = content.replaceAll("'", """);
    return content;
}

public static String escape(String s) {
    StringBuffer sbuf = new StringBuffer();
    int len = s.length();
    for (int i = 0; i < len; i++) {
      int ch = s.charAt(i);
      if ('A' <= ch && ch <= 'Z') { // 'A'..'Z' : as it was
        sbuf.append((char) ch);
      } else if ('a' <= ch && ch <= 'z') { // 'a'..'z' : as it was
        sbuf.append((char) ch);
      } else if ('0' <= ch && ch <= '9') { // '0'..'9' : as it was
        sbuf.append((char) ch);
      } else if (ch == '-'
          || ch == '_' // unreserved : as it was
          || ch == '.' || ch == '!' || ch == '~' || ch == '*'
          || ch == '/'' || ch == '(' || ch == ')') {
        sbuf.append((char) ch);
      } else if (ch <= 0x007F) { // other ASCII : map to %XX
        sbuf.append('%');
        sbuf.append(hex[ch]);
      } else { // unicode : map to %uXXXX
        sbuf.append('%');
        sbuf.append('u');
        sbuf.append(hex[(ch >>> 8)]);
        sbuf.append(hex[(0x00FF & ch)]);
      }
    }
    return sbuf.toString();
  }


public static String unescape(String s) {
    StringBuffer sbuf = new StringBuffer();
    int i = 0;
    int len = s.length();
    while (i < len) {
      int ch = s.charAt(i);
      if ('A' <= ch && ch <= 'Z') { // 'A'..'Z' : as it was
        sbuf.append((char) ch);
      } else if ('a' <= ch && ch <= 'z') { // 'a'..'z' : as it was
        sbuf.append((char) ch);
      } else if ('0' <= ch && ch <= '9') { // '0'..'9' : as it was
        sbuf.append((char) ch);
      } else if (ch == '-'
          || ch == '_' // unreserved : as it was
          || ch == '.' || ch == '!' || ch == '~' || ch == '*'
          || ch == '/'' || ch == '(' || ch == ')') {
        sbuf.append((char) ch);
      } else if (ch == '%') {
        int cint = 0;
        if ('u' != s.charAt(i + 1)) { // %XX : map to ascii(XX)
          cint = (cint << 4) | val[s.charAt(i + 1)];
          cint = (cint << 4) | val[s.charAt(i + 2)];
          i += 2;
        } else { // %uXXXX : map to unicode(XXXX)
            cint = (cint << 4) | val[s.charAt(i + 2)];
            cint = (cint << 4) | val[s.charAt(i + 3)];
            cint = (cint << 4) | val[s.charAt(i + 4)];
            cint = (cint << 4) | val[s.charAt(i + 5)];
            i += 5;
          }
          sbuf.append((char) cint);
        } else {
          sbuf.append((char) ch);
        }
        i++;
      }
      return sbuf.toString();
    }

public static String cleanSitesPageString(String userString){
 //first escape all single and double quotes
 userString = userString.replaceAll("([/"'])", "$1");
 
 //now replace all special spacing with html
  StringBuffer buf = new StringBuffer();

  for (int i=0, limit=userString.length(); i    char c = userString.charAt(i);
    switch( c ) {
    case '&': buf.append( "&" ); break;
    case '/r': buf.append("
");break;
    case '/n': buf.append( "
" ); break;
    case '/t':buf.append("    "); break;
    default:
    buf.append( (char)c );
    break;
   }//end switch
  }//end for
  
  return buf.toString();
}

public static void main(String [] args){
 SNStringUtils.getFixedWidthContent("22",710,null);
// String   testStr   =   br.readLine();
 String   testStr= "c://Java//";
 System.out.println(testStr);
// testStr   =   testStr.replaceAll(" ", " ");//这样就把/换成//这个了
// testStr   =   testStr.replace(" ", "// // ");//这样就把/换成//这个了
 if(testStr.lastIndexOf("//")==0)
 testStr = org.apache.commons.lang.StringUtils.replace(testStr,"//", "");
 System.out.println(testStr);
 System.out.println( " ");
}
}

你可能感兴趣的:(java 单个反斜杆 处理)