Escape string
/*
* Copyright 2009 Sysmap Solutions Software e Consultoria Ltda.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
//package br.com.sysmap.crux.core.client.utils;
public class EscapeUtils
{
public static String simpleQuote(String str, boolean nullToBlank)
{
if(str == null) return (nullToBlank ? "''" : null);
int cursor = 0;
int strLenght = str.length();
StringBuilder sb = new StringBuilder(strLenght + 16);
sb.append("'");
while(cursor < strLenght)
{
char nextchar = str.charAt(cursor++);
if(nextchar == '\\')
{
sb.append("\\\\"); // Substitue \ por \\
continue;
}
else if(nextchar == '\'')
{
sb.append("\\'"); // Substitue ' por \'
continue;
}
else if(nextchar == '\r')
{
if((cursor + 1) < strLenght && str.charAt(cursor+1) == '\n') cursor++;
sb.append("\\n"); // Substitue quebra de linha por \n
continue;
}
else if(nextchar == '\n')
{
sb.append("\\n"); // Substitue quebra de linha por \n
continue;
}
sb.append(nextchar);
}
sb.append("'");
return sb.toString();
}
public static String simpleQuote(String str)
{
return simpleQuote(str, true);
}
public static String quote(String str, boolean nullToBlank)
{
if(str == null) return (nullToBlank ? "\"\"" : null);
int cursor = 0;
int strLenght = str.length();
StringBuilder sb = new StringBuilder(strLenght + 16);
sb.append("\"");
while(cursor < strLenght)
{
char nextchar = str.charAt(cursor++);
if(nextchar == '\\')
{
sb.append("\\\\"); // Substitue \ por \\
continue;
}
else if(nextchar == '"')
{
sb.append("\\\""); // Substitue " por \"
continue;
}
else if(nextchar == '\r')
{
if((cursor + 1) < strLenght && str.charAt(cursor+1) == '\n') cursor++;
sb.append("\\n"); // Substitue quebra de linha por \n
continue;
}
else if(nextchar == '\n')
{
sb.append("\\n"); // Substitue quebra de linha por \n
continue;
}
sb.append(nextchar);
}
sb.append("\"");
return sb.toString();
}
public static String quote(String str)
{
return quote(str, true);
}
}
Related examples in the same category