µÚÎåÕ Êý×éÓë×Ö·û´®

Java³ÌÐòÉè¼ÆÈëÃÅÓ뾫ͨ

¿ÉÒÔÖ±½ÓʹÓÃÊý×éÀàArraysÌṩµÄbinarySearch·½·¨ÊµÏÖ²éÕÒÒªÇ󡣸÷½·¨µÄʹÓÃÐÎʽÈçÏ£º

public static int binarySearch (Xxx a[], Xxx v)

¸Ã·½·¨ÓÃÕÛ°ë²éÕÒËã·¨ÔÚÖ¸¶¨µÄÊý×éa²éÕÒֵΪvµÄÔªËØ¡£ÆäÖÐÊý×éaÊÇÀàÐÍΪchar¡¢byte¡¢short¡¢int¡¢long¡¢float¡¢double»òÕßbooleanµÄÒ»¸öÊý×飬vÊÇÓëÊý×éaµÄÔªËØÀàÐÍÏàͬµÄÖµ¡£Èç¹ûÔÚÊý×éa²éÕÒµ½ÖµÎªvµÄÔªËØ£¬Ôò·µ»Ø¸ÃÔªËØµÄϱꣻ·ñÔò£¬Ôò·µ»ØÒ»¸ö¸ºÖµr£¬Î»ÅZ-£¨r+1£©Îª±£³ÖÊý×éÓÐÐòʱֵΪvµÄÔªËØÓ¦¸Ã²åÈëµÄλÅZ¡£

´úÂ룺

//µ÷ÓÃbinarySearch·½·¨ÔÚÊý×éÖвéÕÒÖ¸¶¨µÄÖµ // ArraySearch.javaÔ´³ÌÐò import java.util.*; class ArraySearch{ public static void main(String args[]){ char ch []={'a','b','c','e','f','h','i'}; char key='f';

int pos;

System.out.println(\Êý×éΪ:\ for(int i=0;i< ch.length;i++)

System.out.print(ch[i]+\ \ System.out.println(\ pos=Arrays.binarySearch(ch,key);

if(pos<0)

System.out.println(\ÔªËØ\ÔÚÊý×éÖв»´æÔÚ\ else

System.out.println(\ÔªËØ\ÔÚÊý×éÖеÄλÅZΪ\ }

}

ÔËÐнá¹ûÈçͼ5-13£º

ͼ5-13Àý5-8³ÌÐòÔËÐнá¹ûͼ

79

µÚÎåÕ Êý×éºÍ×Ö·û´®

×¢Ò⣺ µ÷ÓÃbinarySearchʱÊý×鱨ÐëÒѾ­ÊÇÉýÐòÓÐÐòµÄ£¬·ñÔò£¬¿É

Äܵ¼Ö´íÎóµÄ½á¹û¡£

5.2 ×Ö·û´®

×Ö·û´®ÊÇ×éÖ¯×Ö·ûµÄ»ù±¾Êý¾Ý½á¹¹£¬´ÓijÖ̶ֳÈÉÏÀ´ËµÓÐЩÀàËÆÓÚ×Ö·ûµÄÊý×é¡£ÔÚJava³ÌÐòÖÐÐèÒªÓõ½µÄ×Ö·û´®¿ÉÒÔ·ÖΪÁ½´óÀ࣬һÀàÊÇ´´½¨Ö®ºó²»»áÔÙ×öÐ޸ĺͱ䶯µÄ×Ö·û´®³£Á¿StringÀࣻÁíÒ»ÀàÊÇ´´½¨Ö®ºóÔÊÐíÔÙ×ö¸ü¸ÄºÍ±ä»¯µÄ×Ö·û´®±äÁ¿StringBufferÀà¡£

5.2.1 ×Ö·û´®³£Á¿ÓëStringÀà

ÔÚJavaÖУ¬Ã»ÓÐÄÚÅZµÄ×Ö·û´®ÀàÐÍ£¬×Ö·û´®³£Á¿ÊÇ×÷ΪStringÀàµÄ¶ÔÏó´æÔڵġ£Ê¹ÓÃ×Ö·û´®µÄ¹ý³Ì¿ÉÒÔ±íÊöΪÉùÃ÷¡¢´´½¨(³õʼ»¯)¡¢´¦Àí3¸ö²½Öè¡£ÆäÖÐÉùÃ÷Óë´´½¨Ò²¾­³£ºÏ²¢ÔÚ

Ò»Æð½øÐС£

1£®´´½¨StringÀà¶ÔÏó

´´½¨StringÀà×Ö·û´®µÄ·½Ê½ÓÐÁ½ÖÖ£ºÊ¹ÓÃÀàËÆ»ù±¾ÀàÐ͵ÄË«ÒýºÅ¡±¡±¸³Öµ·¨£¬»òʹÓÃÀàµÄ¹¹Ôì·½·¨¡£

¢Å ʹÓÃÀàµÄ¹¹Ôì·½·¨´´½¨×Ö·û´®

ÀýÈ磺

String str1=new String(\ //ʹÓÃÀàµÄ¹¹Ôì·½·¨´´½¨×Ö·û´®str1 String str2=new String(\

ʹÓÃÀàµÄ¹¹Ôì·½·¨²úÉúµÄ×Ö·û´®¶ÔÏó£¬ÓÐ×Ô¼ºµÄ¶ÀÁ¢¿Õ¼ä¡£ÉÏÀýÖÐ×Ö·û´®str1ºÍ×Ö·û´®str2¾Í¸÷ÓÐ×Ô¼ºµÄ´æ´¢¿Õ¼ä¡£

ͼ5-14 ÓÉÀàµÄ¹¹Ôì·½·¨²úÉúµÄ×Ö·û´®¶ÔÏó

80

Java³ÌÐòÉè¼ÆÈëÃÅÓ뾫ͨ

JavaÖÐnew String()·½·¨µÄÐÎʽÓкü¸ÖÖ£¬³£ÓõÄÐÎʽÈçÏ£º String() //´´½¨Ò»¸ö¿Õ×Ö·û´®³£Á¿¡£

String(String value) //¸ù¾ÝÒ»¸öÒѾ­´æÔÚµÄ×Ö·û´®³£Á¿À´´´½¨Ò»¸öеÄ×Ö·û´®³£Á¿¡£ String(char[] value) //¸ù¾ÝÒ»¸öÒѾ­´æÔÚµÄ×Ö·ûÊý×éÀ´´´½¨Ò»¸öеÄ×Ö·û´®³£Á¿¡£ String(byte[] bytes) //¸ù¾ÝÒ»¸öÒѾ­´æÔÚµÄ×Ö½ÚÊý×éÀ´´´½¨Ò»¸öеÄ×Ö·û´®³£Á¿¡£ String(byte[] bytes£¬int startIdnex£¬int numChars) //¸ù¾ÝÒ»¸ö×Ö½ÚÊý×éµÄÖ¸¶¨²¿·ÖÀ´´´½¨Ò»¸öеÄ×Ö·û´®³£Á¿¡£

String(StringBuffer buffer) //¸ù¾ÝÒ»¸öÒѾ­´æÔÚµÄStringBuffer¶ÔÏóÀ´´´½¨Ò»¸öеÄ×Ö·û´®³£Á¿¡£

˵Ã÷£º

ÒòΪºÜ¶àϵͳÖÐ×Ö·û´®µÄµäÐ͸ñʽÊÇÓÉ8λµÄASCII×Ö·û¼¯¹¹³ÉµÄ8λ×Ö½ÚÊý×飬¶øJavaµÄCharÀàʹÓÃ16λ±íʾµÄUnicode±àÂë×Ö·û¼¯¡£ÎªÁËʹ8λ×Ö½ÚÊý×é¸ñʽµÄÔ´Êý¾Ý£¬Äܹ»Ö±½ÓΪUnicode±àÂëµÄStringÀà×Ö·û´®ËùÓã¬JavaÌṩÁËÓÉ×Ö½ÚÊý×é´´½¨×Ö·û´®µÄ·½·¨¡£

ÆäÖУ¬²ÎÊýbytes´ú±íÒ»¸öÓÉASCIIÂë¹¹³ÉµÄ×Ö½ÚÊý×飬²ÎÊýstartIdnex´ú±íÆðʼλÅZ£¬²ÎÊýnumChars´ú±íÔªËØ¸öÊý¡£

¡¾Àý5-9¡¿ÀûÓÃnew·½·¨´´½¨StringÀà×Ö·û´®Ê¾Àý¡£ Éè¼ÆË¼Â·£º

ÀûÓÃnewÉùÃ÷²¢³õʼ»¯¸³Öµ7¸öStringÀà×Ö·û´®s1¡¢s2¡¢s3¡¢s4¡¢s5¡¢s6¡¢s7¡£7´Î¸³ÖµÊ¹ÓÃÁË7ÖÖ²»Í¬µÄ¹¹Ôì·½·¨¡£

´úÂ룺

// StringCreate.javaÔ´³ÌÐò public class StringCreate{ public static void main(String args[]){

char chars1[]={'a', 'b', 'c', 'd', 'e', 'f'};

String s1=new String(); // ´´½¨¿Õ×Ö·û´®s1

String s2=new String(chars1); //ÓÉ×Ö·ûÊý×échars1£¬´´½¨×Ö·û´®s2 //ÓÉÊý×échars1µÄÖ¸¶¨²¿·Ö£¬´´½¨×Ö·û´®s3 String s3=new String(chars1,3,3);

byte asc[]={65,66,67,68,69};

//ÓÉ×Ö½ÚÊý×éasc£¬´´½¨×Ö·û´®s4£¬ÖµÊÇ\String s4=new String(asc);

//ÓÉ×Ö½ÚÊý×éascµÄÖ¸¶¨²¿·Ö£¬´´½¨×Ö·û´®s5£¬ÖµÊÇ\String s5=new String(asc,2,3);

//Êý×éhz¹¹³É\ÃæÏò¶ÔÏó\¸öºº×Ö¡£-61Óë-26×éºÏ³Éºº×Ö\Ãæ\£¬ÆäÓàÀàÍÆ byte hz[ ]={-61, -26, -49, -14, -74, -44, -49, -13}; //ÓÃ×Ö½ÚÊý×éhz°´È±Ê¡µÄ×Ö·û±àÂë·½°¸´´½¨´®¶ÔÏós6

String s6=new String(hz);

81

µÚÎåÕ Êý×éºÍ×Ö·û´®

//´ÓhzϱêΪ2µÄ×Ö½Ú¿ªÊ¼£¬È¡Á¬ÐøµÄ4¸ö×Ö½Ú{-49, -14, -74, -44}´´½¨s7 String s7=new String(hz,2,4);

}

System.out.println(\System.out.println(\System.out.println(\System.out.println(\System.out.println(\System.out.println(\System.out.println(\

}

³ÌÐòÔËÐнá¹ûͼ5-15£º

ͼ5-15Àý5-9³ÌÐòÔËÐнá¹ûͼ

¢Æ ʹÓÃË«ÒýºÅ¸³Öµ·¨´´½¨×Ö·û´® ÀýÈ磺

String str3=\ //ʹÓÃË«ÒýºÅ¸³Öµ·¨´´½¨×Ö·û´®str3 String str4=\

ʹÓÃË«ÒýºÅ¸³Öµ·¨²úÉú×Ö·û´®ÊÇΪÁËÌá¸ß³ÌÐòÔËÐÐËÙ¶È¡£ÏµÍ³ÄÚ´æÖÐרÃÅÓÐÒ»¿é×Ö·û´®³Ø(String Pool)£¬Ã¿²úÉúÒ»¸öË«ÒýºÅ¸³Öµ·¨×Ö·û´®£¬ÏµÍ³Ê×Ïȵ½String PoolÖв鿴ÊÇ·ñÒÑÓÐÏàͬµÄ×Ö·û´®ÔÚÀïÃæ£¬Èç¹ûÓУ¬¾ÍÖ±½ÓÄóöÀ´Ê¹Óá£Èç¹ûûÓУ¬²Å½«ÐÂ×Ö·û´®·ÅÈëString PoolÖС£ËùÒÔ£¬ÓÃË«ÒýºÅ¸³Öµ·¨²úÉúµÄÏàͬ×Ö·ûÔÚÄÚ´æÖÐÖ»ÓÐÒ»·Ý¡£ÕâÑù£¬×Ö·û´®str3ºÍstr4ʵ¼ÊÉÏÊÇÖ¸ÏòͬһÄÚ´æµØÖ·¡£Èçͼ5-16Ëùʾ¡£

ÔÚ´´½¨×Ö·û´®Ê±£¬»¹¿ÉÒÔʹÓÃJavaµÄ¡±+¡±ÔËËã·û£¬ÊµÏÖ×Ö·û´®¼äµÄÁ¬½Ó¡£ÀýÈ磺

String str5= ¡°hello¡±+¡±java !¡±; //ÉùÃ÷²¢´´½¨×Ö·û´®Str5

Èç¹û×Ö·û´®ÓëÆäËûÀàÐ͵ıäÁ¿½øÐС±+¡±ÔËË㣬ϵͳ×Ô¶¯½«ÆäÀàÐÍת»»Îª×Ö·û´®¡£ÀýÈ磺 int i=5;

String str6=¡±i=¡±+i; // ÉùÃ÷²¢´´½¨×Ö·û´®str6£¬ÖµÎª¡±i=5¡±

82

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)