溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

利用java項(xiàng)目中對(duì)字符串進(jìn)行拼接

發(fā)布時(shí)間:2020-12-03 16:00:57 來源:億速云 閱讀:197 作者:Leah 欄目:編程語言

利用java項(xiàng)目中對(duì)字符串進(jìn)行拼接?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

java 字符串拼接的實(shí)現(xiàn)

在實(shí)際的開發(fā)工作中,對(duì)字符串的處理是最常見的編程任務(wù)。本題目即是要求程序?qū)τ脩糨斎氲拇M(jìn)行處理。具體規(guī)則如下:

1. 把每個(gè)單詞的首字母變?yōu)榇髮憽?
2. 把數(shù)字與字母之間用下劃線字符(_)分開,使得更清晰
3. 把單詞中間有多個(gè)空格的調(diào)整為1個(gè)空格。

例如:

用戶輸入:

you and     me what  cpp2005program

則程序輸出:

You And Me What Cpp_2005_program

用戶輸入:

this is     a      99cat

則程序輸出:

This Is A 99_cat

我們假設(shè):用戶輸入的串中只有小寫字母,空格和數(shù)字,不含其它的字母或符號(hào)。每個(gè)單詞間由1個(gè)或多個(gè)空格分隔。
假設(shè)用戶輸入的串長(zhǎng)度不超過200個(gè)字符。

要求考生把所有類寫在一個(gè)文件中。調(diào)試好后,存入與考生文件夾下對(duì)應(yīng)題號(hào)的“解答.txt”中即可。相關(guān)的工程文件不要拷入。請(qǐng)不要使用package語句。

另外,源程序中只能出現(xiàn)JDK1.5中允許的語法或調(diào)用。不能使用1.6或更高版本。

實(shí)現(xiàn)實(shí)例:

 import java.util.ArrayList; 
import java.util.Scanner; 
 
//you and   me what cpp2005program 
//則程序輸出: 
//You And Me What Cpp_2005_program 
 
public class Main { 
  public static void main(String[] args){ 
    String x = new Scanner(System.in).nextLine(); 
    combineStr(x); 
  } 
 
  public static void combineStr(String x){ 
     
    //獲取處理后的數(shù)據(jù)集合 
    ArrayList<String> list = repair(x); 
 
    //用于判斷數(shù)字的字符串 
    String intStr = "0123456789"; 
 
    //獲取每個(gè)字符串進(jìn)行字符的拼接轉(zhuǎn)換 
    String result = ""; 
    for(int i=0;i<list.size();i++){ 
      //取出一個(gè)字符 
      String temp = list.get(i); 
       
      //初始化結(jié)果值 
      result = temp; 
     
      //進(jìn)行數(shù)字與字母的判斷 
      for(int k=0;k<temp.length()-1;k++){ 
         
        if(intStr.indexOf(temp.charAt(k))!=-1 && intStr.indexOf(temp.charAt(k+1))==-1){   // 此時(shí)判斷條件為數(shù)字 
          // 8a  返回替換后的字符,原字符不變 
          result = result.replace(temp.substring(k, k+2), (temp.charAt(k)+"_"+temp.charAt(k+1))); 
       
        }else if(intStr.indexOf(temp.charAt(k))==-1 && intStr.indexOf(temp.charAt(k+1))!=-1){  //字母數(shù)字 
           
          result = result.replace(temp.substring(k, k+2), (temp.charAt(k)+"_"+temp.charAt(k+1))); 
   
        } 
      } 
      System.out.print(result+" "); 
    } 
  } 
 
  //獲取用戶輸入的,去掉重復(fù)的空白符 
  public static ArrayList<String> repair(String x){ 
     
    //保存首字符轉(zhuǎn)為大寫后的單詞 
    ArrayList<String> list = new ArrayList<String>(); 
     
    //用于判斷數(shù)字的字符串 
    String intStr = "0123456789"; 
 
    String[] arr = x.split(" "); 
 
    for(int i=0;i<arr.length;i++){ 
      if(!arr[i].equals("")){ 
        //對(duì)每一個(gè)字符進(jìn)行判斷 
        if( intStr.indexOf(arr[i].charAt(0))==-1){  // 對(duì)應(yīng)的字符為字母而不是數(shù)字,==-1表示沒有找到數(shù)字,則為字母 
          String newString = (arr[i].charAt(0)+"").toUpperCase()+arr[i].substring(1); 
          list.add(newString); 
        }else{ 
          list.add(arr[i]); 
        } 
      } 
    } 
    return list; 
  } 
} 

看完上述內(nèi)容,你們掌握利用java項(xiàng)目中對(duì)字符串進(jìn)行拼接的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI