最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Java算法之串如何處理

這篇文章主要為大家展示了“Java算法之串如何處理”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Java算法之串如何處理”這篇文章吧。

創(chuàng)新互聯(lián)專注于洛隆網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供洛隆營(yíng)銷型網(wǎng)站建設(shè),洛隆網(wǎng)站制作、洛隆網(wǎng)頁(yè)設(shè)計(jì)、洛隆網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造洛隆網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供洛隆網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

題目如下:

串的處理

在實(shí)際的開發(fā)工作中,對(duì)字符串的處理是最常見(jiàn)的編程任務(wù)。

本題目即是要求程序?qū)τ脩糨斎氲拇M(jìn)行處理。具體規(guī)則如下:

1. 把每個(gè)單詞的首字母變?yōu)榇髮憽?/p>

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)度不超過(guò)200個(gè)字符。

方法一:

public class 串的簡(jiǎn)單處理 {
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String string = scanner.nextLine();
    Vector vector = new Vector();
    for (int i = 0; i < string.length(); i++) {
      vector.add(string.charAt(i));
    }
    try {
      int index = 0;
      while (index < vector.size()) {
        //判斷第一個(gè)是否為小寫的英文字符,是的話進(jìn)行操作
        if (index == 0 && vector.elementAt(index) >= 'a'
            && vector.elementAt(index) <= 'z') {
          //Replaces the element at the specified position in this Vector with the specified element
          vector.set(index,(char) (vector.elementAt(index) - ('a' - 'A')));
        } else if (vector.elementAt(index - 1) == ' '&& vector.elementAt(index) == ' ') {
          //處理有多個(gè)空格的可能
          vector.remove(index);
          index--;
        } else if (vector.elementAt(index - 1) == ' '
            && (vector.elementAt(index) >= 'a' && vector
                .elementAt(index) <= 'z')) {
          //判斷是空格后邊的字符
          vector.set(index,
              (char) (vector.elementAt(index) - ('a' - 'A')));
        } else if ((vector.elementAt(index) >= 'a' && vector
            .elementAt(index) <= 'z')
            && (vector.elementAt(index - 1) >= '0' && vector
                .elementAt(index - 1) <= '9')) {
          vector.add(index, '_');
          index++;
        } else if ((vector.elementAt(index - 1) >= 'a' && vector
            .elementAt(index - 1) <= 'z')
            && (vector.elementAt(index) >= '0' && vector
                .elementAt(index) <= '9')) {
          //判斷的是數(shù)字
          vector.add(index, '_');
          index++;
        }
        index++;
      }
      for (int i = 0; i < vector.size(); i++) {
        System.out.print(vector.elementAt(i));
      }
      System.out.println();
    } catch (ArrayIndexOutOfBoundsException e) {
    }
  }
}

Java算法之串如何處理

方法二:主要用到正則表達(dá)式對(duì)字符串進(jìn)行截取,然后對(duì)每一個(gè)字符數(shù)組的元素進(jìn)行正則匹配,含有數(shù)字的單獨(dú)進(jìn)行處理

public class SimpleString {
  // 打印字符串的函數(shù)
  public static void print(String[] s) {
    for (int i = 0; i < s.length - 1; i++) {
      System.out.print(s[i] + " ");
    }
    System.out.println(s[s.length - 1]);
  }
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String s = scan.nextLine();
    String[] ss = s.split("[\\s]+"); // 根據(jù)正則表達(dá)式,刪除一個(gè)或多個(gè)空格,將字符串保存為字符數(shù)組
    for (int i = 0; i < ss.length; i++) {
      // 將每一個(gè)字符數(shù)組的首字母改為大寫
      String up = ("" + ss[i].charAt(0)).toUpperCase(); // 大寫
      StringBuffer sb = new StringBuffer(ss[i]);
      ss[i] = sb.replace(0, 1, up).toString();
      // 上邊已經(jīng)把字符串?dāng)?shù)組的首字母該為大寫,然后對(duì)更改后的字符數(shù)組判斷是否有數(shù)字
      Matcher m = Pattern.compile("\\d+").matcher(ss[i]);// 0-9出現(xiàn)一次或多次
      while (m.find()) {
        // m.group():Returns the input subsequence matched by the previous match
        String num = new String(m.group());
        String num2 = num;
        num2 = "_" + num + "_"; // 數(shù)字前后都添加"_"
        ss[i] = ss[i].replace(num, num2);
        if (ss[i].startsWith("_")) { // 去頭"_"
          ss[i] = ss[i].substring(1);
        }
        if (ss[i].endsWith("_")) { // 去尾"_"
          ss[i] = ss[i].substring(0, ss[i].length() - 1);
        }
      }
    }
    print(ss);
  }
}

Java算法之串如何處理

以上是“Java算法之串如何處理”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁(yè)題目:Java算法之串如何處理
本文URL:http://fisionsoft.com.cn/article/ijoesi.html