📄 stringutils.java
字号:
/* * XP Forum * * Copyright (c) 2002-2003 RedSoft Group. All rights reserved. * */package org.redsoft.forum.util;import java.text.SimpleDateFormat;import java.util.Date;/** * String processing utilities * * @author <a href="mailto:jwtronics@yahoo.com">John Wong</a> * * @version $Id: StringUtils.java,v 1.2 2004/02/26 03:05:37 mustang Exp $ */public final class StringUtils { // constants used by escapeHTMLTags private static final char[] QUOTE_ENCODE = """.toCharArray(); private static final char[] AMP_ENCODE = "&".toCharArray(); private static final char[] LT_ENCODE = "<".toCharArray(); private static final char[] GT_ENCODE = ">".toCharArray(); private static final char[] APOS_ENCODE = "'".toCharArray(); private static final char[] DOUBLT_QUOTE_ENCODE = """.toCharArray(); /** * This method takes a string which may contain HTML tags (ie, <b>, * <table>, etc) and converts the '<'' and '>' characters to * their HTML escape sequences. * * @param in the text to be converted. * @return the input string with the characters '<' and '>' replaced * with their HTML escape sequences. */ public static final String escapeHTMLTags(String in) { if (in == null) { return null; } char ch; int i = 0; int last = 0; char[] input = in.toCharArray(); int len = input.length; StringBuffer out = new StringBuffer((int) (len * 1.3)); for (; i < len; i++) { ch = input[i]; if (ch > '>') { continue; } else if (ch == '<') { if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(LT_ENCODE); } else if (ch == '>') { if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(GT_ENCODE); }else if( ch== '"'){ if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(DOUBLT_QUOTE_ENCODE); } } if (last == 0) { return in; } if (i > last) { out.append(input, last, i - last); } return out.toString(); } /** * This method takes a string which may contain HTML tags (ie, <b>, * <table>, etc) and converts the '<'' and '>' characters to * their HTML escape sequences. * * @param in the text to be converted. * @return the input string with the characters '<' and '>' replaced * with their HTML escape sequences. */ public static final String escapeHTMLTagsButHref(String in) { if (in == null) { return null; } char ch; int i = 0; int last = 0; char[] input = in.toCharArray(); int len = input.length; boolean ahref = false; boolean img = false; StringBuffer out = new StringBuffer((int) (len * 1.3)); for (; i < len; i++) { ch = input[i]; if( ahref ){ if( ch == '<' && input[ i+1 ] == '/' && input[i+2] == 'a' && input[ i+3 ] == '>' ){ i = i + 3; ahref = false; }else if(ch == '<') { if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(LT_ENCODE); }else if( ch== '"'){ if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(DOUBLT_QUOTE_ENCODE); } }else if( img ){ if( ch== '/' && input[ i+ 1 ] == '>' ){ i++; img = false; }else if(ch == '<') { if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(LT_ENCODE); }else if( ch== '"'){ if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(DOUBLT_QUOTE_ENCODE); } }else{ if( ch == '<' && input[ i + 1 ] == 'a' ){ ahref = true; }else if( ch == '<' && input[i+1] == 'i' && input[i+2] == 'm' && input[i+3] == 'g'){ img = true; }else{ if(ch == '<') { if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(LT_ENCODE); }else if (ch == '>') { if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(GT_ENCODE); }else if( ch== '"'){ if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(DOUBLT_QUOTE_ENCODE); }else if( ch == '\n' ){ if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append("<br>"); }else if( ch == ' ' ){ if (i > last) { out.append(input, last, i - last); } last = i + 1; out.append(" "); } } } } if (last == 0) { return in; } if (i > last) { out.append(input, last, i - last); } return out.toString(); } /** * If two String are equal */ public static boolean isEqual(String str1, String str2) { if(str1 == null && str2 != null) return false; if(str1.equals(str2)) return true; return false; } public static String replaceNewLine( final String in ){ if (in == null) { return null; } char ch; char[] input = in.toCharArray(); int len = input.length; final StringBuffer out = new StringBuffer((int) (len * 1.3)); for ( int index = 0; index < len; index++) { ch = input[ index ]; if( ch == '\n' ){ out.append("<br>"); }else if( ch == ' ' ){ out.append(" "); }else{ out.append( ch ); } } return out.toString(); } private static String DATE_FORMAT = "yyyy.MM.dd"; private static SimpleDateFormat format = new SimpleDateFormat( DATE_FORMAT ); public static String formatTimeStamp( final long timestamp ){ return format.format( new Date( timestamp ) ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -