龙岗网站建设 信科网络,网站开发程序员工资,南宁百度关键词排名公司,网站制作排序一.Java字符串类基本概念在JAVA语言中#xff0c;字符串数据实际上由String类所实现的。Java字符串类分为两类#xff1a;一类是在程序中不会被改变长度的不变字符串#xff1b;二类是在程序中会被改变长度的可变字符串。Java环境为了存储和维护这两类字符串提供了 String和…一.Java字符串类基本概念在JAVA语言中字符串数据实际上由String类所实现的。Java字符串类分为两类一类是在程序中不会被改变长度的不变字符串二类是在程序中会被改变长度的可变字符串。Java环境为了存储和维护这两类字符串提供了 String和StringBuffer两个类。一、创建字符串例 StringstrnewThis is a String);或者 StringstrThis is a String;二、得到字符串对象的有关信息1.通过调用length()方法得到String的长度.例String strThisis a String;int len str.length();2.StringBuffer类的capacity()方法与String类的 length()的方法类似但是她测试是分配给StringBuffer的内存空间的大小而不是当前被使用了的内存空间。3如果想确定字符串中指定字符或子字符串在给定字符串的位置可以用 indexOf()和lastIndexOf()方法。String strThisis a String;Int index1 str.indexOf(i); //index2Intindex2str.indexOf(‘i‘,index1); //index25Intindex3str.lastIndexOf(I); //index315Intindex4str.indexOf(String); //index410三、String对象的比较和操作1String对象的比较String类的equals()方法用来确定两个字符串是否相等。String strThisis a String;Boolean resultstr.equals(This is another String);//resultfalse2String对象的访问A、方法charAt()用以得到指定位置的字符。String strThisis a String;char chrstr.charAt(3); //chriB、方法getChars()用以得到字符串的一部分字符串public voidgetChars(int srcBegin,intsrcEnd,char[]dst,intdstBegin)String strThisis a String;Char chr new char[10];Str.getChars(5,12,chr,0); //chrisa StC、subString()是提取字符串的另一种方法它可以指定从何处开始提取字符串以及何处结束。3操作字符串A、replace()方法可以将字符串中的一个字符替换为另一个字符。String strThisis a String;String str1str.replace(‘T‘,‘t‘); //str1thisis a StringB、concat()方法可以把两个字符串合并为一个字符串。String strThisis a String;String str1str.concat(Test); //str1Thisis a String TestC、toUpperCase()和toLowerCase()方法分别实现字符串大小写的转换。String strTHISIS A STRING;String str1str.toLowerCase(); //str1thisis a string;D、trim()方法可以将字符串中开头和结尾处的空格去掉.String strThisis a String ;String str1str.trim(); //str1This is a StringE、String类提供静态方法valueOf(),它可以将任何类型的数据对象转换为一个字符串。如System.out.println(String,ValueOf(math,PI));四、修改可变字符串StringBuffer类为可变字符串的修改提供了3种方法在字符串中间插入和改变某个位置所在的字符。1在字符串后面追加用append()方法将各种对象加入到字符串中。2在字符串中间插入用insert()方法。例StringBuffer strnew StringBuffer(Thisis a String);Str.insert(9,test);System.out.println(str.toString());这段代码输出为Thisis a test String3.改变某个位置所在的字符用setCharAt()方法。StringBuffer sb new StringBuffer(aaaaaa);sb.setCharAt(2, “b”); // 结果aabaaa二.字符串分割1.利用字符串类的split方法进行分割/** *//**利用字符串的split方法进行分割* param str 待分割的字符串* param sdelimiter 分割符* return*/public String[] splitString(String str,String sdelimiter)...{String[] arraystr.split(sdelimiter);return array;}2.利用StringTokenizer来进行字符串分割/** *//**利用StringTokenizer来进行字符串分割* param str 待分割的字符串* param sdelimiter 分割符* return*/public String[] useStringTokenizer(String str,String sdelimiter)...{StringTokenizer tokennew StringTokenizer(str,sdelimiter);String[] arraynew String[token.countTokens()];int i0;while(token.hasMoreTokens())...{array[i]token.nextToken();i;}return array;}三.字符串数组排序/** *//**对字符串数组进行排序* param str 原始字符串数组* param flag flag0:顺序排序 flag1:倒序排序* return 排序后的字符串数组*/public String[] sort(String[] str,int flag)...{if(strnull||str.length0)throw new IllegalArgumentException();String tempstr[0];//顺序排列 ,即从小到大if(flag0)...{for(int i0;istr.length-1;i)...{for(int ji1;jstr.length;j)...{if(str[i].compareTo(str[j])0)...{tempstr[i];str[i]str[j];str[j]temp;}}}}else if(flag1)...{//倒序排列for(int i0;istr.length-1;i)...{for(int ji1;jstr.length;j)...{if(str[i].compareTo(str[j])0)...{tempstr[i];str[i]str[j];str[j]temp;}}}}return str;}四.使用Hashtable对字符串进行碰撞利用hashtable对字符串进行过滤两个字符数组之间的比较对字符串数组进行过滤1.在一些字符串数组中常会有重复的记录比如手机号码我们可以通过Hashtable来对其进行过滤public String[] checkArray(String[] str)...{HashtableString, String hashnew HashtableString, String();for(int i0;istr.length;i)...{if(!hash.containsKey(str[i]))hash.put(str[i], str[i]);}Enumeration enumerationhash.keys();String[] str_newnew String[hash.size()];int i0;while(enumeration.hasMoreElements())...{str_new[i]enumeration.nextElement().toString();i;}return str_new;}示例String[]mobile{13811071500,13811071500,13811071501,13811071503,13811071501};mobilecheckArray(mobile);for(int i0;imobile.length;i)System.out.println(mobile[i]);输出结果为1381107150313811071501138110715002.A,B均为字符串数组找出在A中存在而在B中不存在的字符串public String[] compareArray(String[] A,String[] B){HashtableString, String hashnewHashtableString, String();HashtableString, Stringhash_newnew HashtableString, String();for(int i0;iB.length;i)hash.put(B[i], B[i]);for(int i0;iA.length;i){if(!hash.containsKey(A[i]))hash_new.put(A[i], A[i]);}String[] Cnew String[hash_new.size()];int i0;Enumeration enumerationhash_new.keys();while(enumeration.hasMoreElements()){C[i]enumeration.nextElement().toString();i;}return C;}示例String[] mobile1{13811071500,13811071501,13811071502,13811071503,13811071504};String[]mobile2{13811071500,13811071505,13811071502,13811071506,13811071504};String[]mobile3compareArray(mobile1,mobile2);for(int i0;imobile3.length;i)System.out.println(mobile[i]);输出结果1381107150313811071501存在的问题每次都是倒序可以再对程序稍加改动变成正序。3.将一个字符串数组中某一个特定的字符串过滤掉/** *//**检验一个字符串数组若包含某一特定的字符串则将该字符串从数组中删除返回剩余的字符串数组* param str_array 字符串数组* param str_remove 待删除的字符串* return 过滤后的字符串*/public String[] removeStrFromArray(String[] str_array,Stringstr_remove)...{HashtableString, String hashnew HashtableString, String();for(int i0;istr_array.length;i)...{if(!str_array[i].equals(str_remove))hash.put(str_array[i], str_array[i]);}//生成一个新的数组String[] str_newnew String[hash.size()];int i0;Enumeration enumerationhash.keys();while(enumeration.hasMoreElements())...{str_new[i]enumeration.nextElement().toString();i;}return str_new;}