Cleans strings of illegal characters with respect to the XML specification. : String char « Data Type « Java






Cleans strings of illegal characters with respect to the XML specification.

    
/*
 * JSwiff is an open source Java API for Macromedia Flash file generation
 * and manipulation
 *
 * Copyright (C) 2004-2005 Ralf Terdic (contact@jswiff.com)
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

//package com.jswiff.util;

import java.text.DecimalFormat;

import java.util.Locale;


/**
 * Contains some methods for string manipulation.
 */
public class StringUtilities {
  /** Default rounding precision (digits after decimal point) */
  public static final int DEFAULT_ROUND_PRECISION = 16;
  private static DecimalFormat df;

  static {
    Locale.setDefault(Locale.US);
    df = new DecimalFormat();
    df.setGroupingUsed(false);
  }

  /**
   * Checks if a string contains illegal characters with respect to the XML
   * specification.
   *
   * @param text the text to be checked
   *
   * @return true if illegal chars contained, otherwise false
   */
  public static boolean containsIllegalChars(String text) {
    int size        = text.length();
    boolean illegal = false;
    for (int i = 0; i < size; i++) {
      char c = text.charAt(i);
      if ((c < 32) && (c != '\t') && (c != '\n') && (c != '\r')) {
        illegal = true;
        break;
      }
    }
    return illegal;
  }

  /**
   * Converts a double to a string. You can specify the rounding precision,
   * i.e. the number of digits after the decimal point.
   *
   * @param d double to be converted
   * @param precision rounding precision
   *
   * @return a string representing the passed double value
   */
  public static String doubleToString(double d, int precision) {
    synchronized (df) {
      df.setMaximumFractionDigits(precision);
      return df.format(d);
    }
  }

  /**
   * Converts a double to a string. The default rounding precision is used.
   *
   * @param d double to be converted
   *
   * @return a string representing the passed double value
   */
  public static String doubleToString(double d) {
    return doubleToString(d, DEFAULT_ROUND_PRECISION);
  }

  /**
   * Cleans strings of illegal characters with respect to the XML
   * specification.
   *
   * @param text string to be cleaned
   *
   * @return the cleaned string
   */
  public static String purgeString(String text) {
    char[] block        = null;
    StringBuffer buffer = new StringBuffer();
    int i;
    int last            = 0;
    int size            = text.length();
    for (i = 0; i < size; i++) {
      char c = text.charAt(i);
      if ((c < 32) && (c != '\t') && (c != '\n') && (c != '\r')) {
        // remove character
        if (block == null) {
          block = text.toCharArray();
        }
        buffer.append(block, last, i - last);
        last = i + 1;
      }
    }
    if (last == 0) {
      return text;
    }
    if (last < size) {
      if (block == null) {
        block = text.toCharArray();
      }
      buffer.append(block, last, i - last);
    }
    return buffer.toString();
  }
}

   
    
    
    
  








Related examples in the same category

1.StrCharAt - show String.charAt()
2.Basic tab-character handling stuff
3.Convert Characters to Lower Case
4.Convert Characters to Upper Case
5.Replace Characters in a String
6.Character array to String conversion
7.Convert String to character array
8.Last occurrence of a character
9.Extract Ascii codes from a String
10.To remove a character
11.Removes specified chars from a string
12.Checks if a String is not empty (""), not null and not whitespace only.
13.Checks if a String is whitespace, empty ("") or null.
14.Checks if the String contains any character in the given set of characters.
15.Checks if the String contains only certain characters.
16.Checks if the String contains only whitespace.
17.Checks if the string contains only ASCII printable characters.
18.Checks that the String does not contain certain characters.
19.The character array based string
20.Checks whether the String contains only digit characters.
21.Remove char from a string
22.Remove whitespace from the ends as well as excessive whitespace within the inside of the string between non-whitespace characters.
23.Removes any hypens ( - ) from the given string
24.Returns a new string with all the whitespace removed
25.Is char a white space character
26.Simple scanner that allows to navigate over the characters of a string.
27.Returns a string with size of count and all characters initialized with ch.
28.Returns a string that contains all characters of the given string in reverse order.
29.Returns a string that is equivalent to the specified string with its first character converted to uppercase
30.Count the number of occurrences of character c in a string.
31.A fast way to convert character arrays into Strings.
32.XML utilities that pertain to character handling (markup or character data), without use of any XML libraries.
33.Check whether the given String contains any whitespace characters.
34.Character utilities.
35.Provides a number of static methods which interact with java.nio.charset.Charset to analyze and transform the strings identifing character encodings.
36.Operations on char primitives and Character objects.
37.Return the result of adding the specified character to the specified sorted character array.
38.Return a displayable version of the character sequence, followed by integer positions at various powers of 10.
39.Returns the string constructed from the specified character sequence by deaccenting each of its characters.
40.Returns a hash code for a character sequence that is equivalent to the hash code generated for a its string yield.
41.Return true if the two character sequences have the same length and the same characters.
42.Returns an array of substrings of the specified string, in order, with divisions before and after any instance of the specified character.
43.Returns true if specified character is a punctuation character.
44.Appends a whitespace-normalized form of the specified character sequence into the specified string buffer.
45.Determine whether characters may appear in certain roles in XML documents.
46.Advanced navigation over the underlying string.
47.Compare two char sequences
48.Contents As CharSequence