Java tutorial
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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. */ /** * This class is for escaping CDATA sections. * * @author <a href="mailto:wglass@apache.org">Will Glass-Husain</a> * @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a> * @version $Id: Escape.java 463298 2006-10-12 16:10:32Z henning $ */ public class Escape { /** * */ public static final String LINE_SEPARATOR = System.getProperty("line.separator"); /** * Empty constructor */ public Escape() { // left blank on purpose } /** * Do the escaping. * * @param st * @return The escaped text. */ public static final String getText(String st) { StringBuffer buff = new StringBuffer(); char[] block = st.toCharArray(); String stEntity = null; int i, last; for (i = 0, last = 0; i < block.length; i++) { switch (block[i]) { case '<': stEntity = "<"; break; case '>': stEntity = ">"; break; case '&': stEntity = "&"; break; case '"': stEntity = """; break; case '\n': stEntity = LINE_SEPARATOR; break; default: /* no-op */ break; } if (stEntity != null) { buff.append(block, last, i - last); buff.append(stEntity); stEntity = null; last = i + 1; } } if (last < block.length) { buff.append(block, last, i - last); } return buff.toString(); } }