⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringextension.java

📁 j2me游戏引擎 j2me游戏引擎
💻 JAVA
字号:
package cn.org.matrix.gmatrix.gameLab.util;

import java.util.Vector;
/**
 * 字符串扩展类:由于j2me中的String类功能有限,所以编写此类
 * @author cleverpig
 *
 */
public class StringExtension {
	//回车分割符
	public static final String ENTER_SEPARATOR="\r\n";
	//分割操作的类型-分割为字符串数组
	public static final int STRING_ARRAY=0;
	//分割操作的类型-分割为整数数组
	public static final int INTEGER_ARRAY=1;
	
	/**
	 * 使用分割字符串来分离字符串
	 * @param strbf 待分离的字符串Buffer
	 * @param separator 分割字符串
	 * @param resultType 返回结果的类型(字符串数组、整型数组)
	 * @param drop 是否丢弃分离后剩余的字符串
	 * @return 分割后的字符串对象数组
	 */
	public static Object[] split(StringBuffer strbf,String separator,int resultType,boolean drop){
		
		int pos=0;
		Vector tmp=null;
		
		pos=strbf.toString().indexOf(separator);
		tmp=new Vector();
		
		while(pos>0){
			switch(resultType){
			case STRING_ARRAY:
				tmp.addElement(strbf.toString().substring(0,pos));
				break;
			case INTEGER_ARRAY:
				tmp.addElement(new Integer(Integer.parseInt(strbf.toString().substring(0,pos))));
				break;
			}
			
			strbf.delete(0,pos+separator.length());
			pos=strbf.toString().indexOf(separator);
		}
		
		//如果保留余下的字符串,则将它加入到返回结果中。
		if (!drop){
			if (strbf.length()>0){
				switch(resultType){
				case STRING_ARRAY:
					tmp.addElement(strbf.toString());
					break;
				case INTEGER_ARRAY:
					tmp.addElement(new Integer(Integer.parseInt(strbf.toString())));
					break;
				}
			}
		}
		Object[] result=new Object[tmp.size()];
		tmp.copyInto(result);
		return result;
	}
	
	/**
	 * 将对象数组中的原本为String的对象转换为String类型
	 * @param objArray 对象数组
	 * @return 转换后的字符串数组
	 */
	public static String[] objectArrayBatchToStringArray(Object[] objArray){
		String[] result=new String[objArray.length];
		for(int i=0;i<objArray.length;i++){
			result[i]=(String)objArray[i];
		}
		return result;
	}
	
	/**
	 * 将对象数组中的原本为Integer的对象转换为int类型
	 * @param objArray 对象数组
	 * @return 转换后的int数组
	 */
	public static int[] objectArrayBatchToIntArray(Object[] objArray){
		int[] result=new int[objArray.length];
		for(int i=0;i<objArray.length;i++){
			Integer t=(Integer)objArray[i];
			result[i]=t.intValue();
		}
		return result;
	}
	
	/**
	 * 返回字符串中某个子字符串出现的次数
	 * @param str 字符串
	 * @param token 子字符串
	 * @return 子字符串出现的次数
	 */
	public static int getTokenCount(String str,String token){
		int count=0;
		int beginPos=0;
		int pos=0;
		while ((pos=str.indexOf(token,beginPos))>=0){
			count++;
			beginPos=pos+token.length();
		}
		return count;
	}
	
	/**
	 * 切除字符串中的token子字符串
	 * @param content 字符串
	 * @param cutToken 要被切除的子字符串
	 * @return 切除后的字符串
	 */
	public static String removeToken(String content,String cutToken){
		StringBuffer s=new StringBuffer(content);
		int pos=0;
		
		while((pos=s.toString().indexOf(cutToken))>=0){
			s.delete(pos,pos+cutToken.length());
		}
		return s.toString();
	}
	
	/**
	 * 切除字符串中的token子字符串
	 * @param content 字符串
	 * @param cutToken 由要被切除的子字符串组成的数组
	 * @return 切除后的字符串
	 */
	public static String removeToken(String content,String[] cutToken){
		StringBuffer s=new StringBuffer(content);
		int pos=0;
		
		for(int i=0;i<cutToken.length;i++){
			while((pos=s.toString().indexOf(cutToken[i]))>=0){
				s.delete(pos,pos+cutToken[i].length());
			}
		}
		return s.toString();
	}
	
	/**
	 * 替换字符串中的某个子字符串
	 * @param content 字符串
	 * @param replacedToken 被替换的子字符串
	 * @param replaceStr 替换后的子字符串
	 * @return 替换完成过的字符串
	 */
	public static String replaceToken(String content,String replacedToken,String replaceStr){
		StringBuffer s=new StringBuffer(content);
		int pos=0;
		
		while((pos=s.toString().indexOf(replacedToken))>=0){
			s.delete(pos,pos+replacedToken.length());
			s.insert(pos,replaceStr);
		}
		return s.toString();
	}
	
	public static void main(String[] argv){
//		String mapData="1,2,3,4,5,6,7,8,9,10,11,12,13,14,\r\n" 
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n" 
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10,\r\n"
//			+"10,10,10,10,10,10,10,10,10,10,10,10,10,10\r\n";
//		
//		Object[] result=StringExtension.split(new StringBuffer(mapData),"\r\n",StringExtension.STRING_ARRAY,false);
//		String[] strResult=objectArrayBatchToStringArray(result);
//		for(int i=0;i<strResult.length;i++){
//			System.out.println("line "+i+"="+strResult[i]);
//		}
//		
//		for(int j=0;j<result.length;j++){
//			Object[] intArray=StringExtension.split(new StringBuffer(strResult[j]),",",StringExtension.INTEGER_ARRAY,false);
//			int[] intResult=objectArrayBatchToIntArray(intArray);
//			
//			for(int m=0;m<intResult.length;m++){		
//				System.out.println("line "+j+":"+m+"="+intResult[m]);
//			}
//		}
		String str="\r\n1\r\n2\r\n3\r\n4\r\n5\r\n6";
		System.out.println(StringExtension.getTokenCount(str,","));
		System.out.println(StringExtension.removeToken(str,"\r\n"));
		String str2="&ref,1&ref,2,3,4,5,6";
		System.out.println(StringExtension.replaceToken(str2,"&ref,",","));
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -