1. 程式人生 > >關於字串處理的經典問題

關於字串處理的經典問題

串的處理

在實際的開發工作中,對字串的處理是最常見的程式設計任務。

本題目即是要求程式對使用者輸入的串進行處理。具體規則如下:

1. 把每個單詞的首字母變為大寫。

2. 把數字與字母之間用下劃線字元(_)分開,使得更清晰

3. 把單詞中間有多個空格的調整為1個空格。

例如:

使用者輸入:

you and     me what  cpp2005program

則程式輸出:

You And Me What Cpp_2005_program

使用者輸入:

this is     a      99cat

則程式輸出:

This Is A 99_cat

我們假設:使用者輸入的串中只有小寫字母,空格和數字,不含其它的字母或符號。

每個單詞間由1個或多個空格分隔。

假設使用者輸入的串長度不超過200個字元。

package 處理串;

import java.util.Scanner;
import java.util.Vector;

public class Example {
     public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		String str=scan.nextLine();
		Vector<Character> vec=new Vector();
                for(int i=0;i<str.length();i++){
			vec.add(str.charAt(i));
                }
		if(vec.elementAt(0)>='a'&&vec.elementAt(0)<='z'){
			vec.set(0, (char) (vec.elementAt(0)-('a'-'A')));
		}
                for(int i=1;i<vec.size();i++){
        	    if(vec.elementAt(i-1)==' '){
        		for(;vec.elementAt(i)==' ';){
        			vec.removeElementAt(i);                   
        		}
        	    }
        	    if(vec.elementAt(i-1)==' '&&vec.elementAt(i)>'a'&&vec.elementAt(i)<'z')
        		vec.set(i, (char) (vec.elementAt(i)-32));
        	    if(vec.elementAt(i-1)>='1'&&vec.elementAt(i-1)<='9'){
        		if(vec.elementAt(i)>='a'&&vec.elementAt(i)<='z')
        			vec.add(i, '_');
        	    }
        	    if(vec.elementAt(i-1)>='a'&&vec.elementAt(i-1)<='z'){
        		if(vec.elementAt(i)>='1'&&vec.elementAt(i)<='9')
        			vec.add(i, '_');
        		
        	  }
             }
            for(int i=0;i<vec.size();i++){
        	System.out.print(vec.elementAt(i));
             }
	}
}


相關推薦

LintCode 384: Longest Substring Without Repeating Characters (字串處理經典題)

Longest Substring Without Repeating Characters Given a string, find the length of the longest substring without repeating characters. E

列表圖形列印--------字串處理經典習題

導文 思想,在平時非業務面試或者列印相關圖形時,通常採用列表的形式進行列印,如下就是非常經典的兩練習習題,重要的是思想,思維和方式,具體總結如下: 列印圖形 重點分析 每個行和列要對齊,至於多少寬度要根據自動生成時,計算偏移寬度; 其實每一行就

ACM經典演算法之字串處理

一、(字串替換) 語法:replace(char str[],char key[],char swap[]); 引數: str[]: 在此源字串進行替換操作 key[]: 被替換的字串,不能為空串 swap[]: 替

關於字串處理經典問題

串的處理 在實際的開發工作中,對字串的處理是最常見的程式設計任務。 本題目即是要求程式對使用者輸入的串進行處理。具體規則如下: 1. 把每個單詞的首字母變為大寫。 2. 把數字與字母之間用下劃線字元(_)分開,使得更清晰 3. 把單詞中間有多個空格的調整為1個空格。 例如:

字串處理演算法(六)求2個字串最長公共部分

基礎演算法連結快速通道,不斷更新中: 整型陣列處理演算法部分: 整型陣列處理演算法(一)按照正態分佈來排列整型陣列元素 整型陣列處理演算法(二)檔案中有一組整數,要求排序後輸出到另一個檔案中 整型陣列處理演算法(三)把一個數組裡的所有元素,插入到另一個數組的指定位置 整型陣列

mysql進行字串處理

mysql進行字串的處理 MySQL 字串擷取函式:left(), right(), substring(), substring_index()。還有 mid(), substr()。其中,mid(), substr() 等價於 substring() 函式,substring()

C++筆試題 字串處理

字串處理 描述 定義字串的以下幾種操作: • reverse(A)獲得A字串的逆序字串,例如reverse(“abc”) = “cba” • shuffle(A)獲得A隨機重排的字串,例如shuffle(“dog”) ∈ {“dog”, “dgo”, “odg”, “ogd”,

字串處理-Hdu1004

題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=1004 題目大意:給你一個數n,要求輸入n個字串,在這n個字串中,我們需要輸出出現次數最多的字串。 這道題看起來的確很簡單,但是卻花了我不少時間,開始時是利用C語言中的char陣列來存這些字串,依次統計,但是做

【C語言】字串處理自定義函式

1、字串求長度 #include <stdio.h> int Mystrlen1(const char *str) { int i=0; while(*(str++)!='\0') { i++; } return i; } int Mystrlen2(cons

E - String of CCPC (字串處理)(str.substr()的運用)

滴答滴答---題目連結  BaoBao has just found a string  of length  consisting of 'C' and 'P' in his pocket. As a big fan of the China

04: 字串處理 擴充套件的指令碼技巧 正則表示式

Top NSD SHELL DAY04 案例1:字串擷取及切割 案例2:字串初值的處理 案例3:expect預期互動 案例4:使用正則表示式 1 案例1:字串擷取及切割 1.1 問題 使用Shell完成各種Linux運維任務時,一旦涉及到判斷、條

字元和字串處理(2)

2.5 安全字串函式 不安全的字串函式 Strsafe函式 Safe CRT函式 (C執行庫) strcpy, wcscpy, _tcscpy, _mbscpy, strcpy , lstrcpy, _tccpy

字元和字串處理(1)

2.1 字符集及字元編碼(字符集——字元的集合,不同的字符集,收錄的字元可能不同) 2.1.1多位元組字符集及ANSI編碼標準 (1)單位元組編碼:ASCII字符集及擴充套件——滿足英語及西歐語言的需要 (2)雙位元組編碼:——滿足亞洲等國家語言文字的需要,如:

1001 A+B Format - 字串處理

思路:用stringstream把int轉換為string 程式碼如下: #include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<

EL表示式整數被當作字串處理

 通過把web.xml內容 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s

python3字串處理,高效切片

高階技巧:切片,迭代,列表,生成器 切片 L = ['Hello', 'World', '!'] print("-------1.一個一個取-------") print(L[0]) print(L[1]) print(L[2]) print("-------2.開闢一個

(C/C++學習)14.C語言字串處理函式(二)

說明:上節著重解釋了字串處理的庫函式處理,這節將針對一些常用的需求,進行非庫函式的處理。 一.去除某一個字串中的某個字元 1.去除字串右邊的空格 1 void trimStrRightSpace(char * str) 2 { 3 while(*str) 4 s

【原創】python學習筆記(10)--《笨辦法學python》字串處理

  字串基本操作 (1) 字串+字串 (2)字串*數字 (3)字串+str(其他) # -*- coding:utf-8 -*- print ("test1") name1="alice" name2="bob" name_new=name1+name2 print

408. Valid Word Abbreviation --字串處理

Given s = "internationalization", abbr = "i12iz4n": Return true.abbr 裡數字代表相應的字元數,問字串是否相等雖然是一個easy 的題但卻有兩個坑:1. abbr 結尾的地方是數字 例如: s= "internationalization"

一個將浮點數轉換成人民幣讀法字串處理(xxxx.xx格式)

主要是加深對陣列的理解在,這個程式原來是《瘋狂java講義》低第103頁上的一個例子,但是例子並不完整,對0的處理和對末位包括小數點後面處理不完整,因此這裡進行了完善。考慮到人民幣通俗叫法,浮點數格式為(XXXX.XX),轉換為字串格式為(x千x百x十x元x角x分),當然還要考慮末位開始位和零的處理