最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java String類常用方法練習(xí)小結(jié)

 更新時(shí)間:2017年02月16日 11:07:51   作者:沐一  
本文主要介紹了java String類常用方法的例子,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧

String 類代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作為此類的實(shí)例實(shí)現(xiàn)。

字符串是常量;它們的值在創(chuàng)建之后不能更改。字符串緩沖區(qū)支持可變的字符串。

String 類包括的方法可用于檢查序列的單個(gè)字符、比較字符串、搜索字符串、提取子字符串、

創(chuàng)建字符串副本并將所有字符全部轉(zhuǎn)換為大寫或小寫。

String類是最常用的類之一,下面就通過(guò)幾個(gè)練習(xí),熟悉String類中的提供的重要方法。

字符串練習(xí)一

給定一個(gè)字符串?dāng)?shù)組,按照字典順序,進(jìn)行大小寫排序

思路:

1.對(duì)數(shù)組排序,可以用選擇排序、冒泡排序等等。

2.for循環(huán)嵌套,比較,交換位置。

3.不同之處,以前比較的是數(shù)字,用的是比較運(yùn)算符;

現(xiàn)在比較的是字符串對(duì)象,應(yīng)該使用compareTo方法。

public class StringTest_1
{
 //對(duì)字符串?dāng)?shù)組進(jìn)行排序
 public static void stringSort(String[] arr)
 {
 //采用冒泡排序
 for(int i=0;i<arr.length-1;i++)
 {
  for(int j=0;j<arr.length-1-i;j++)
  {
  //用compareTo方法進(jìn)行字符串比較
  if(arr[j].compareTo(arr[j+1])>0)
  {
   String temp=arr[j];
   arr[j]=arr[j+1];
   arr[j+1]=temp;
  }
  }
 }
 showArray(arr);
 }
 //定義方法,以[str1,str2,str3]的格式來(lái)打印數(shù)組
 public static void showArray(String[] arr)
 {
 System.out.print("[");
 for(int i=0;i<arr.length;i++)
 {
  if(i!=arr.length-1)
  System.out.print(arr[i]+",");
  else
  {
  System.out.print(arr[i]+"]\n");
  }
 }
 }
 public static void main(String[] args) 
 {
 String arr[]={"nba","abc","cba","zz","qq","haha"};
 //打印數(shù)組
 showArray(arr);
 //對(duì)數(shù)組進(jìn)行排序并輸出
 stringSort(arr);
 }
}

運(yùn)行:

字符串練習(xí)二

一個(gè)子串在字符串中出現(xiàn)的次數(shù)

思路:

1.用indexOf方法獲取子串在字符串中第一次出現(xiàn)的位置index

2.再用indexOf方法獲取以(index+子串長(zhǎng)度)為起始的剩下的字符串中子串出現(xiàn)的位置,直到字符串中不再包含子串。可用while循環(huán)實(shí)現(xiàn)。

3.每次找到后用計(jì)數(shù)器記錄即可。

public class StringTest_2 
{
 public static void main(String[] args) 
 {
 String str="abcqwabcedcxabcuabcjkabcnmbabc";
 //String str=null;
 try
 {
  int count=countChildStr(str,"abc");
  System.out.println("abc在"+str+"中出現(xiàn)的次數(shù)為:"+count);
 }
 catch (NullPointerException ne)
 {
  System.out.println(ne);
 }
 catch(RuntimeException re)
 {
  System.out.println(re);
 }
 }
 public static int countChildStr(String str,String key)
 {
 if(str==null||key==null)
 {
  throw new NullPointerException("空指針異常,源字符串和子串都不能為NULL");
 }
 if(key=="")
 {throw new RuntimeException("調(diào)用不合法,子串要有內(nèi)容");}
 int count=0,index=0;
 while((index=str.indexOf(key,index))!=-1)
 {
  count++;
  index+=key.length();
 }
 return count;
 }
}

字符串練習(xí)三

找到兩個(gè)字符串的最大公共子串

思路:

1.判斷較長(zhǎng)字符串中是否包含較短字符串,如果包含,則較短字符串則為最大公共子串。

2.如果不包含,就對(duì)較短字符串以長(zhǎng)度遞減的方式取子串,去較長(zhǎng)字符串中判斷是否包含,如果包含就找到了,不用再找了。

3.重點(diǎn):對(duì)字符串以長(zhǎng)度遞減的方式取子串

public class StringTest_3
{
 public static void main(String[] args) 
 {
 //創(chuàng)建兩個(gè)不為空的字符串
 String str1="abxczwsxcvdfas";
 //String str1=null;
 String str2="ghwsxcvxcdbgthnnnrfqwe";
 try
 {
  String str=searchMaxCommonStr(str1,str2);
  System.out.println("最大公共子串是:"+str);
 }
 catch (NullPointerException ne)
 {
  System.out.println(ne);
 }
 }
 public static String searchMaxCommonStr(String str1,String str2)
 {
 if(str1==null||str2==null)
  throw new NullPointerException("空指針異常,參數(shù)不能為Null");
 //斷定較長(zhǎng)字符串和較短字符串
 String max=(str1.length()>str2.length())?str1:str2;
 String min=(str1.equals(max))?str2:str1;
 //按長(zhǎng)度遞減的方式取子串,從min.length~~1
 for(int i=min.length();i>0;i--)
 {
  for(int x=0,y=x+i;y<min.length();x++,y++)
  {
  String childStr=min.substring(x,y);
  //若較長(zhǎng)字符串中包含此子串,則找到了
  //否則繼續(xù)找
  if(max.contains(childStr))
   return childStr;
  }
 }
 return null;
 }
}

運(yùn)行:

字符串練習(xí)四

寫一個(gè)和trim功能相同的方法

思路:

1.定義兩個(gè)變量,用來(lái)存儲(chǔ)兩個(gè)角標(biāo)

2.分別從頭和尾遍歷字符串,直到找到第一個(gè)不為空格的字符

3.截取字符串

public class StringTest_4
{
 public static void main(String[] args) 
 {
 String str=" abc ws ";
 str=myTrim(str);
 System.out.println(str);
 }
 public static String myTrim(String s)
 {
 int begin=0,end=s.length()-1;
 //從頭遍歷
 while(begin<=end && s.charAt(begin)==' ')
 {
  begin++;
 }
 //從尾部遍歷
 while(begin<=end && s.charAt(end)==' ')
 {
  end--;
 }
 return s.substring(begin,end+1);
 }
}

運(yùn)行:

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • SpringBoot通過(guò)Filter實(shí)現(xiàn)整個(gè)項(xiàng)目接口的SQL注入攔截詳解

    SpringBoot通過(guò)Filter實(shí)現(xiàn)整個(gè)項(xiàng)目接口的SQL注入攔截詳解

    這篇文章主要介紹了SpringBoot通過(guò)Filter實(shí)現(xiàn)整個(gè)項(xiàng)目接口的SQL注入攔截詳解,SQL注入是比較常見(jiàn)的網(wǎng)絡(luò)攻擊方式之一,在客戶端在向服務(wù)器發(fā)送請(qǐng)求的時(shí)候,sql命令通過(guò)表單提交或者url字符串拼接傳遞到后臺(tái)持久層,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令,需要的朋友可以參考下
    2023-12-12
  • SpringBoot整合LDAP的流程分析

    SpringBoot整合LDAP的流程分析

    這篇文章主要介紹了SpringBoot整合LDAP的流程分析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • Java結(jié)合EasyExcel構(gòu)建復(fù)雜多級(jí)表頭

    Java結(jié)合EasyExcel構(gòu)建復(fù)雜多級(jí)表頭

    在Java開發(fā)中,處理Excel文件時(shí),構(gòu)建復(fù)雜的多級(jí)表頭是一項(xiàng)常見(jiàn)且具有挑戰(zhàn)性的任務(wù),下面小編就來(lái)和大家聊聊如何通過(guò)自定義方法實(shí)現(xiàn)多級(jí)表頭的構(gòu)建吧
    2025-03-03
  • Java Synchronized的偏向鎖詳細(xì)分析

    Java Synchronized的偏向鎖詳細(xì)分析

    synchronized作為Java程序員最常用同步工具,很多人卻對(duì)它的用法和實(shí)現(xiàn)原理一知半解,以至于還有不少人認(rèn)為synchronized是重量級(jí)鎖,性能較差,盡量少用。但不可否認(rèn)的是synchronized依然是并發(fā)首選工具,本文就來(lái)詳細(xì)講講
    2023-04-04
  • springSecurity實(shí)現(xiàn)簡(jiǎn)單的登錄功能

    springSecurity實(shí)現(xiàn)簡(jiǎn)單的登錄功能

    這篇文章主要為大家詳細(xì)介紹了springSecurity實(shí)現(xiàn)簡(jiǎn)單的登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 詳解Java中final的用法

    詳解Java中final的用法

    本文主要介紹了Java中final的使用方法,final是java的關(guān)鍵字,本文就詳細(xì)說(shuō)明一下它的使用方法,需要的朋友可以參考下
    2015-08-08
  • SpringBoot詳解如何進(jìn)行整合Druid數(shù)據(jù)源

    SpringBoot詳解如何進(jìn)行整合Druid數(shù)據(jù)源

    Druid是阿里開發(fā)的一款開源的數(shù)據(jù)源,被很多人認(rèn)為是Java語(yǔ)言中最好的數(shù)據(jù)庫(kù)連接池,本文主要介紹了SpringBoot整合Druid數(shù)據(jù)源的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • java實(shí)現(xiàn)十六進(jìn)制字符unicode與中英文轉(zhuǎn)換示例

    java實(shí)現(xiàn)十六進(jìn)制字符unicode與中英文轉(zhuǎn)換示例

    當(dāng)需要對(duì)一個(gè)unicode十六進(jìn)制字符串進(jìn)行編碼時(shí),首先做的應(yīng)該是確認(rèn)字符集編碼格式,在無(wú)法快速獲知的情況下,通過(guò)一下的str4all方法可以達(dá)到這一目的
    2014-02-02
  • 若依前后端打成一個(gè)JAR包部署的完整步驟

    若依前后端打成一個(gè)JAR包部署的完整步驟

    這篇文章主要介紹了如何將若依前后端分離項(xiàng)目打包成jar,不使用nginx轉(zhuǎn)發(fā),前端修改了路由模式和環(huán)境變量配置,后端增加了依賴、配置了Thymeleaf和訪問(wèn)路徑,需要的朋友可以參考下
    2025-01-01
  • 關(guān)于后綴表達(dá)式的java實(shí)現(xiàn)過(guò)程

    關(guān)于后綴表達(dá)式的java實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了關(guān)于后綴表達(dá)式的java實(shí)現(xiàn)過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評(píng)論

新余市| 新安县| 广宁县| 平谷区| 塔河县| 偏关县| 青河县| 吉安市| 河南省| 霍城县| 金秀| 滦平县| 景东| 京山县| 任丘市| 广灵县| 镇赉县| 海安县| 开化县| 东乌珠穆沁旗| 金门县| 苍南县| 栖霞市| 武川县| 南涧| 麟游县| 山阳县| 和林格尔县| 临猗县| 汶川县| 新泰市| 丽水市| 体育| 张家口市| 逊克县| 互助| 日土县| 富锦市| 深圳市| 商城县| 南通市|