import java.util.*;
import java.util.regex.Pattern;
public class StrTools {
/**
* ·Ö¸î×Ö·û´®
*
* @param str String Ôʼ×Ö·û´®
* @param splitsign String ·Ö¸ô·û
* @return String[] ·Ö¸îºóµÄ×Ö·û´®Êý×é
*/
@SuppressWarnings("unchecked")
public static String[] split(String str, String splitsign) {
int index;
if (str == null || splitsign == null)
return null;
ArrayList al = new ArrayList();
while ((index = str.indexOf(splitsign)) != -1) {
al.add(str.substring(0, index));
str = str.substring(index + splitsign.length());
}
al.add(str);
return (String[]) al.toArray(new String[0]);
}
/**
* Ìæ»»×Ö·û´®
*
* @param from String Ôʼ×Ö·û´®
* @param to String Ä¿±ê×Ö·û´®
* @param source String ĸ×Ö·û´®
* @return String Ìæ»»ºóµÄ×Ö·û´®
*/
public static String replace(String from, String to, String source) {
if (source == null || from == null || to == null)
return null ......
×Ö·û´®
1¡¢»ñÈ¡×Ö·û´®µÄ³¤¶È
length()
2 ¡¢ÅжÏ×Ö·û´®µÄǰ׺»òºó׺ÓëÒÑÖª×Ö·û´®ÊÇ·ñÏàͬ
ǰ׺ startsWith(String s)
ºó׺ endsWith(String s)
3¡¢±È½ÏÁ½¸ö×Ö·û´®
equals(String s)
4¡¢°Ñ×Ö·û´®×ª»¯ÎªÏàÓ¦µÄÊýÖµ
intÐÍ Integer.parseInt(×Ö·û´®)
longÐÍ Long.parseLong(×Ö·û´®)
floatÐÍ Folat.valueOf(×Ö·û´®).floatValue()
doubleÐÍ Double.valueOf(×Ö·û´®).doubleValue()
4¡¢½«Êýֵת»¯Îª×Ö·û´®
valueOf(ÊýÖµ)
5¡¢×Ö·û´®¼ìË÷
indexOf(Srting s) ´ÓÍ·¿ªÊ¼¼ìË÷
indexOf(String s ,int startpoint) ´Óstartpoint´¦¿ªÊ¼¼ìË÷
Èç¹ûûÓмìË÷µ½£¬½«·µ»Ø-1
6¡¢µÃµ½×Ö·û´®µÄ×Ó×Ö·û´®
substring(int startpoint) ´Óstartpoint´¦¿ªÊ¼»ñÈ¡
substring(int start,int end) ´Óstartµ½endÖмäµÄ×Ö·û
7¡¢Ìæ»»×Ö·û´®ÖеÄ×Ö·û,È¥µô×Ö·û´®Ç°ºó¿Õ¸ñ
replace(char old,char new) ÓÃnewÌæ»»old
trim()
8¡¢·ÖÎö×Ö·û´®
StringTokenizer(String s) ¹¹ÔìÒ»¸ö·ÖÎöÆ÷£¬Ê¹ÓÃĬÈÏ·Ö¸ô×Ö·û£¨¿Õ¸ ......
Ò» Ï̵߳Ļù±¾¸ÅÄî
Ïß³ÌÊÇÒ»¸ö³ÌÐòÄÚ²¿µÄ˳Ðò¿ØÖÆÁ÷.Ò»¸ö½ø³ÌÏ൱ÓÚÒ»¸öÈÎÎñ,Ò»¸öÏß³ÌÏ൱ÓÚÒ»¸öÈÎÎñÖеÄÒ»ÌõÖ´Ðз¾¶.£»¶à½ø³Ì:ÔÚ²Ù×÷ϵͳÖÐÄÜͬʱÔËÐжà¸öÈÎÎñ(³ÌÐò)£»¶àÏß³Ì:ÔÚͬһ¸öÓ¦ÓóÌÐòÖÐÓжà¸ö˳ÐòÁ÷ͬʱִÐУ»JavaµÄÏß³ÌÊÇͨ¹ýjava.lang.ThreadÀàÀ´ÊµÏֵģ»JVMÆô¶¯Ê±»áÓÐÒ»¸öÓÉÖ÷·½·¨(public static void main(){})Ëù¶¨ÒåµÄỊ̈߳»¿ÉÒÔͨ¹ý´´½¨ThreadµÄʵÀýÀ´´´½¨ÐµÄỊ̈߳»Ã¿¸öÏ̶߳¼ÊÇͨ¹ýij¸öÌØ¶¨Thread¶ÔÏóËù¶ÔÓ¦µÄ·½·¨run()À´Íê³ÉÆä²Ù×÷µÄ,·½·¨run()³ÆÎªÏß³ÌÌ壬ͨ¹ýµ÷ÓÃThreadÀàµÄstart()·½·¨À´Æô¶¯Ò»¸öÏ̡߳£
¶þ Ï̵߳Ĵ´½¨ºÍÆô¶¯
¿ÉÒÔÓÐÁ½ÖÖ·½Ê½´´½¨ÐµÄÏß³Ì:
µÚÒ»ÖÖ:
1.¶¨ÒåÏß³ÌÀàʵÏÖRunnable½Ó¿Ú
2.Thread myThread = new Thread(target); //targetΪRunnable½Ó¿ÚÀàÐÍ
3.RunnableÖÐÖ»ÓÐÒ»¸ö·½·¨:public void run();ÓÃÒÔ¶¨ÒåÏß³ÌÔËÐÐÌå
4.ʹÓÃRunnable½Ó¿Ú¿ÉÒÔΪ¶à¸öÏß³ÌÌṩ¹²ÏíµÄÊý¾Ý
5.ÔÚʵÏÖRunnable½Ó¿ÚµÄÀàµÄrun()·½·¨¶¨ÒåÖпÉÒÔʹÓÃThreadµÄ¾²Ì¬·½·¨public static Thread currentThread();»ñÈ¡µ±Ç°Ï̵߳ÄÒýÓÃ
µÚ¶þÖÖ:
1.¿ÉÒÔ¶¨ÒåÒ»¸öThreadµÄ×ÓÀà²¢ÖØÐ´Æärun·½·¨Èç:
class MyThread extends Thread {
public void ru ......
Ò»°ãÀ´Ëµ,ÎÒÃǰÑÕýÔÚ¼ÆËã»úÖÐÖ´ÐеijÌÐò½Ð×ö"½ø³Ì"(Process) ,¶ø²»½«Æä³ÆÎª³ÌÐò(Program)¡£Ëùν"Ïß³Ì"(Thread),ÊÇ"½ø³Ì"ÖÐij¸öµ¥Ò»Ë³ÐòµÄ¿ØÖÆÁ÷¡£ÐÂÐ˵IJÙ×÷ϵͳ,ÈçMac,Windows NT,Windows 95µÈ,´ó¶à²ÉÓöàÏ̵߳ĸÅÄî,°ÑÏß ³ÌÊÓΪ»ù±¾Ö´Ðе¥Î»¡£Ïß³ÌÒ²ÊÇJavaÖеÄÏàµ±ÖØÒªµÄ×é³É²¿·ÖÖ®Ò»¡£
ÉõÖÁ×î¼òµ¥µÄAppletÒ²ÊÇÓɶà¸öÏß³ÌÀ´Íê³ÉµÄ¡£ÔÚJavaÖÐ,ÈκÎÒ»¸öAppletµÄpaint()ºÍupdate()·½·¨¶¼ÊÇÓÉAWT(Abstract Window Toolkit)»æÍ¼Óëʼþ´¦ÀíÏ̵߳÷ÓõÄ,¶øApplet Ö÷ÒªµÄÀï³Ì±®·½·¨——init(),start(),stop()ºÍdestory() ——ÊÇÓÉÖ´ÐиÃAppletµÄÓ¦Óõ÷Óõġ£
µ¥Ï̵߳ĸÅÄîûÓÐʲôеĵط½,ÕæÕýÓÐȤµÄÊÇÔÚÒ»¸ö³ÌÐòÖÐͬʱʹÓöà¸öÏß³ÌÀ´Íê³É²»Í¬µÄÈÎÎñ¡£Ä³Ð©µØ·½ÓÃÇáÁ¿½ø³Ì(Lightweig ht Process)À´´úÌæÏß³Ì,Ïß³ÌÓëÕæÕý½ø³ÌµÄÏàËÆÐÔÔÚÓÚËüÃǶ¼Êǵ¥Ò»Ë³Ðò¿ØÖÆÁ÷¡£È»¶øÏ̱߳»ÈÏΪÇáÁ¿ÊÇÓÉÓÚËüÔËÐÐÓÚÕû¸ö³ÌÐòµÄÉÏÏÂÎÄÄÚ,ÄÜʹÓÃÕû¸ö³ÌÐò¹²ÓеÄ×ÊÔ´ºÍ³ÌÐò»·¾³¡£
×÷Ϊµ¥Ò»Ë³Ðò¿ØÖÆÁ÷,ÔÚÔËÐеijÌÐòÄÚÏ̱߳ØÐëÓµÓÐһЩ×ÊÔ´×÷Ϊ±ØÒªµÄ¿ªÏú¡£ÀýÈç,±ØÐëÓÐÖ´ÐжÑÕ»ºÍ³ÌÐò¼ÆÊýÆ÷ÔÚÏß³ÌÄÚÖ´ÐеĴúÂëÖ»ÔÚËüµÄÉÏÏÂÎÄÖÐÆð×÷ÓÃ,Òò´ËijЩµØ·½ÓÃ"Ö´ÐÐÉÏÏÂÎÄ"À´´úÌæ"Ïß³Ì"¡£
Ïß³ ......
¶àÏ̳߳ÌÐò
¶ÔÓÚ¶àÏ̵߳ĺô¦Õâ¾Í²»¶à˵ÁË¡£µ«ÊÇ,ËüͬÑùÒ²´øÀ´ÁËijЩеÄÂé·³¡£Ö»ÒªÔÚÉè¼Æ³ÌÐòÊ±ÌØ±ðСÐÄÁôÒâ,¿Ë·þÕâЩÂé·³²¢²»ËãÌ«À§ÄÑ¡£
(1)ͬ²½Ïß³Ì
Ðí¶àÏß³ÌÔÚÖ´ÐÐÖбØÐ뿼ÂÇÓëÆäËûÏß³ÌÖ®¼ä¹²ÏíÊý¾Ý»òе÷Ö´ÐÐ״̬¡£Õâ¾Í ÐèҪͬ²½»úÖÆ¡£ÔÚJavaÖÐÿ¸ö¶ÔÏó¶¼ÓÐÒ»°ÑËøÓëÖ®¶ÔÓ¦¡£µ«Java²»Ìṩµ¥¶ÀµÄlockºÍunlock²Ù×÷¡£ËüÓɸ߲ãµÄ½á¹¹ÒþʽʵÏÖ, À´±£Ö¤²Ù×÷µÄ¶ÔÓ¦¡£(È»¶ø,ÎÒÃÇ×¢Òâµ½JavaÐéÄâ»úÌṩµ¥¶ÀµÄmonito renterºÍmonitorexitÖ¸ÁîÀ´ÊµÏÖlockºÍunlock²Ù×÷¡£)
synchronizedÓï¾ä¼ÆËãÒ»¸ö¶ÔÏóÒýÓÃ,ÊÔͼ¶Ô¸Ã¶ÔÏóÍê³ÉËø²Ù×÷, ²¢ÇÒÔÚÍê³ÉËø²Ù×÷ǰֹͣ´¦Àí¡£µ±Ëø²Ù×÷Íê³ÉsynchronizedÓï¾äÌåµÃµ½Ö´ÐС£µ±Óï¾äÌåÖ´ÐÐÍê±Ï(ÎÞÂÛÕý³£»òÒì³£),½âËø²Ù×÷×Ô¶¯Íê³É¡£×÷ÎªÃæÏò¶ÔÏóµÄÓïÑÔ,synchronized¾³£Óë·½·¨Á¬Óá£Ò»ÖֱȽϺõİ취ÊÇ,Èç¹ûij¸ö±äÁ¿ÓÉÒ»¸öÏ̸߳³Öµ²¢ÓɱðµÄÏß³ÌÒýÓûò¸³Öµ,ÄÇôËùÓжԸñäÁ¿µÄ·ÃÎʶ¼±ØÐëÔÚij¸ösynchromizedÓï¾ä»òsynchronized·½·¨ÄÚ¡£
ÏÖÔÚ¼ÙÉèÒ»ÖÖÇé¿ö£ºÏß³Ì1ÓëÏß³Ì2¶¼Òª·ÃÎÊij¸öÊý¾ÝÇø,²¢ÇÒÒªÇóÏß³Ì1µÄ·ÃÎÊÏÈÓÚÏß³Ì2, ÔòÕâʱ½öÓÃsynchronizedÊDz»Äܽâ¾öÎÊÌâµÄ¡£ÕâÔÚUnix»òWindows NTÖпÉÓÃSimaphoreÀ´ÊµÏÖ¡£¶øJava²¢²»Ìṩ¡£ÔÚJavaÖÐÌṩµÄÊÇwait( ......
/*
Function name: myGetHttpFile2
Description: ÅÀÍøÒ³ÓÃ
Input: URL ÀýÈç:http://www.126.com
Output: ×Ö·û´®,ÍøÒ³µÄHTML
*/
public String myGetHttpFile2(String url){
String authentication=null;
ArrayList al=new ArrayList();
String PageURL = url;
PageURL = url ;
ArrayList urlCollection=new ArrayList();
Hashtable ht=new Hashtable();
//´úÀí£¬Èç¹ûÒª´©¹ý´úÀí½«ÏÂÃæ×¢ÊÍÈ¡Ïû
//ht=System.getProperties();
//authentication = "Basic " + new sun.misc.BASE64Encoder().encode("´úÀíµÄÓû§:´úÀíµÄÃÜÂë".getBytes());
//ht.put("proxySet", "true");
//ht.put("proxyHost", "172.16.20.2");
//ht.put("proxyPort", "80");
String urlSource=PageURL;
StringBuffer htmlBuffer=new StringBuffer();
String returnStr=null;
int codeStart=0;
int codeEnd=0;
int linkCount=0;
String getURL=null;
Stri ......