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

📄 utility.java

📁 Java手机游戏源代码(企业公司源代码)供初学者参考。
💻 JAVA
字号:
package com.gt.mobile;


import java.util.Date;
import java.util.Vector;

import javax.microedition.lcdui.Font;
import javax.microedition.rms.RecordStore;


public class Utility {

    /*public static Vector getSplitVector(String content, String separator) {
        String myString = new String(content);
        Vector list = new Vector();
        int occurAt = 0;
        int nextAt = -1;
        while ((nextAt = myString.indexOf(separator)) >= 0) {
            list.addElement(myString.substring(occurAt, nextAt));
            myString = myString.substring(nextAt + separator.length(), myString.length());
        }
        list.addElement(myString);
        return list;
    }*/
    
    public static String[] split(String content,String separator,int number){
    	Vector v=new Vector();
    	int occurAt = 0;
        int nextAt = -1;
        int numberCount=0;
        while ((nextAt = content.indexOf(separator)) >= 0) {    	
            v.addElement(content.substring(occurAt, nextAt));
            content = content.substring(nextAt + separator.length(), content.length());
            if(number>0){
            	numberCount++;
                if(numberCount>=number){
                	break;
                }
            }           
        }
        v.addElement(content);
        String[] ss=new String[v.size()];
        v.copyInto(ss);
        return ss;
    }

    public static String esacpe(String s) {
        StringBuffer sbuf = new StringBuffer();
        int len = s.length();
        for (int i = 0; i < len; i++) {
            int ch = s.charAt(i);
            if ('A' <= ch && ch <= 'Z') { // 'A'..'Z'
                sbuf.append((char) ch);
            } else if ('a' <= ch && ch <= 'z') { // 'a'..'z'
                sbuf.append((char) ch);
            } else if ('0' <= ch && ch <= '9') { // '0'..'9'
                sbuf.append((char) ch);
            } else if (ch == '-' || ch == '_' || ch == '.' || ch == '!' || ch == '~' || ch == '*' || ch == '\'' || ch == '(' || ch == ')') { // unreserved
                sbuf.append((char) ch);
            } else if (ch == ' ') { // space
                sbuf.append('+');
            } else if (ch <= 0x007f) { // other ASCII
                sbuf.append("%").append(Integer.toHexString(ch));
            } else if (ch <= 0x07FF) { // non-ASCII <= 0x7FF
                sbuf.append("%").append(Integer.toHexString(0xc0 | (ch >> 6)));
                sbuf.append("%").append(Integer.toHexString(0x80 | (ch & 0x3F)));
            } else { // 0x7FF < ch <= 0xFFFF
                sbuf.append("%").append(Integer.toHexString(0xe0 | (ch >> 12)));
                sbuf.append("%").append(Integer.toHexString(0x80 | ((ch >> 6) & 0x3F)));
                sbuf.append("%").append(Integer.toHexString(0x80 | (ch & 0x3F)));
            }
        }
        return sbuf.toString();
    }

    public static String replaceString( String origin, String src, String dest )
    {
        if( origin==null ) return null;
        StringBuffer sb = new StringBuffer( origin.length() );

        int srcLength = src.length();
        int destLength = dest.length();

        int preOffset = 0;
        int offset = 0;
        while( (offset=origin.indexOf( src, preOffset ))!=-1 )
        {
            sb.append( origin.substring( preOffset,offset ) );
            sb.append( dest );
            preOffset = offset + srcLength;
        }
        sb.append( origin.substring( preOffset, origin.length() ) );

        return sb.toString();
    }
    
    public static String replaceString(String origin,String[] srcs,String[] dests){
    	String result=origin;
    	for(int i=0;i<srcs.length;i++){
    		result=replaceString(result,srcs[i],dests[i]);
    	}
    	return result;
    }
    
    //转义字符集,补充中
    public static final String[] TRANS_CHARS={" ",    ">",   "<",   "\""};
    public static final String[] TRANS_ESCS={"&nbsp;","&gt;","&lt;","&quot;"};
    
    public static String replaceCharToEsc(String s){
    	return replaceString(s,TRANS_CHARS,TRANS_ESCS);
    }
    
    public static String replaceEscToChar(String s){
    	return replaceString(s,TRANS_ESCS,TRANS_CHARS);
    }
    ///
    public static int findEqualIndex(String find,String[] srcs){
    	int index=-1;
    	for(int i=0;i<srcs.length;i++){
    		if(find.equals(srcs[i])){
    			index=i;
    			break;
    		}
    	}
    	return index;
    }
    
    public static String replace(String input, String oldStr, String newStr) {
        String s = new String(input);
        int pos = s.indexOf(oldStr);

        while (pos != -1) {
            s = s.substring(0, pos) + newStr + s.substring(pos + oldStr.length());
            pos = s.indexOf(oldStr, pos + newStr.length());
        }
        return s;
    }

    /**
     * splits the URL in the parts E.g:
     * http://www.12fb.com:80/Media/MIDI/fb.mid#1
     * 
     * 0: protocol (e.g. http) 1: host (e.g. www.12fb.com) 2: port (e.g. 80) 3:
     * path (e.g. /Media/MIDI) 4: file (e.g. fb.mid) 5: anchor (e.g. 1)
     * 
     * LIMITATION: URL must end with a slash if it is a directory
     */
    public static String[] splitURL(String url) throws Exception {
        StringBuffer u = new StringBuffer(url);
        String[] result = new String[6];
        for (int i = 0; i <= 5; i++) {
            result[i] = "";
        }
        // get protocol
        //		boolean protFound = false;
        int index = url.indexOf(":");
        if (index > 0) {
            result[0] = url.substring(0, index);
            u.delete(0, index + 1);
            //			protFound = true;
        } else if (index == 0) {
            throw new Exception("url format error - protocol");
        }
        // check for host/port
        if (u.length() > 2 && u.charAt(0) == '/' && u.charAt(1) == '/') {
            // found domain part
            u.delete(0, 2);
            int slash = u.toString().indexOf('/');
            if (slash < 0) {
                slash = u.length();
            }
            int colon = u.toString().indexOf(':');
            int endIndex = slash;
            if (colon >= 0) {
                if (colon > slash) {
                    throw new Exception("url format error - port");
                }
                endIndex = colon;
                result[2] = u.toString().substring(colon + 1, slash);
            }
            result[1] = u.toString().substring(0, endIndex);
            u.delete(0, slash);
        }
        // get filename
        if (u.length() > 0) {
            url = u.toString();
            int slash = url.lastIndexOf('/');
            if (slash > 0) {
                result[3] = url.substring(0, slash);
            }
            if (slash < url.length() - 1) {
                String fn = url.substring(slash + 1, url.length());
                int anchorIndex = fn.indexOf("#");
                if (anchorIndex >= 0) {
                    result[4] = fn.substring(0, anchorIndex);
                    result[5] = fn.substring(anchorIndex + 1);
                } else {
                    result[4] = fn;
                }
            }
        }
        return result;
    }
    
    public static String[] getAllTags(String src){
    	if(src==null)
    		return null;
//    	StringBuffer sb=new StringBuffer(src.length());
    	
    	String[] ss=null;
    	Vector v=new Vector();
    	
    	int preOffset=0;
    	int offset=0;
    	
    	int endIndex=0;
    	
    	int tagStart='<';
    	int tagEnd='>';
    	
    	while((offset=src.indexOf(tagStart, preOffset))!=-1){
//    		System.out.println("<<<<<");
//    		System.out.println("preOffset:"+preOffset+" offset:"+offset);
    		String tagString=null;
//    		int tagLength=0;
    		int endOffset=0;
    		int innerOffset=0;
    		if((endOffset=src.indexOf(tagEnd,offset))!=-1){
    			endIndex=endOffset;
    			tagString=src.substring(offset, endOffset+1);
    			while((innerOffset=tagString.indexOf(tagStart,1))!=-1){
    				tagString=tagString.substring(innerOffset);
    			}
//    			tagLength=tagString.length();
    			preOffset=endIndex+1;
    			
    			v.addElement(tagString);
    		}
    		else{
    			break;
    		}
//    		System.out.println(">>>>>");
    	}
    	ss=new String[v.size()];
    	v.copyInto(ss);
    	return ss;
    }
    
    public static final void println(String message){
//    	if(IPIMMIDlet.PROPERTY_utilityPrint)
    	System.out.println(new Date()+" "+message);
    }
    
    public static final String getTwoTagContent(String src,String leftTag,String rightTag){
    	String result=null;
    	int leftI=src.indexOf(leftTag);
    	int rightI=src.indexOf(rightTag);
    	result=src.substring(leftI+leftTag.length(), rightI);
    	return result;
    }
    
	public static final Vector getSubsection(String strSource, Font font, int width, String strSplit) {
		Vector vector = new Vector();
		String temp = strSource;
		int i, j;
		int LastLength = 1;
		int step = 0;
		try {
			while (!temp.equals("")) {
				i = temp.indexOf("\n");
				if (i > 0) {
					if (font.stringWidth(temp.substring(0, i - 1)) >= width) {
						i = -1;
					}
				}
				if (i == -1) {
					if (LastLength > temp.length()) {
						i = temp.length();
					} else {
						i = LastLength;
						step = font.stringWidth(temp.substring(0, i)) > width ? -1 : 1;
						// 得到临界点
						if (i < temp.length()) {
							while (!(font.stringWidth(temp.substring(0, i)) <= width && font.stringWidth(temp.substring(0, i + 1)) > width)) {
								i = i + step;
								if (i == temp.length())
									break;
							}
						}
					}
					// 断词,如果需要的话
					if (!strSplit.equals("")) {
						j = i; // 把初始值记录下来,是因为有可能出现一种情况,这种情况就是这一行只有这么一个单词,会一直搜索到头
						if (i < temp.length()) {
							while (strSplit.indexOf(temp.substring(i - 1, i)) == -1) {
								i--;
								if (i == 0) {
									i = j; // 恢复
									break;
								}
							}
						}
					}
				}
				LastLength = i;
				vector.addElement(Utility.replace(Utility.replace(temp.substring(0, i),"\n",""), "\r", ""));
				if (i == temp.length()) {
					temp = "";
				} else {
					temp = temp.substring(i);
					if (temp.substring(0, 1).equals("\n")) {
						temp = temp.substring(1);
					}
				}
			}
		} catch (Exception e) {
			System.out.println("getSubsection:" + e);
		}
		return vector;
	}
    
    public static final void saveInfo(String message,RecordStore recordStore){
    	
    }
    
    public static final String[] MONTHS={"Jan", "Feb" ,"Mar", "Apr" ,"May",
    	"Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
}

⌨️ 快捷键说明

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