第五章(使用對象) 編程題一


單詞長度(4分)

題目內容:

你的程序要讀入一行文本,其中以空格分隔為若干個單詞,以‘.’結束。你要輸出這行文本中每個單詞的長度。這里的單詞與語言無關,可以包括各種符號,比如“it's”算一個單詞,長度為4。注意,行中可能出現連續的空格。


輸入格式:

輸入在一行中給出一行文本,以‘.’結束,結尾的句號不能計算在最后一個單詞的長度內。

輸出格式:

在一行中輸出這行文本對應的單詞的長度,每個長度之間以空格隔開,行末沒有最后的空格。

輸入樣例:

It's great to see you here.

輸出樣例:

4 5 2 3 3 4

 

題目分析:本題考察對象方法的使用,在本例中應該是split方法的使用,由此順延出另一個難點:正則表達式。

String對象的split方法

在這里有一個技巧是,java的數組在創建的時候是不能不確定長度的,因此我一開始想要直接把輸入用.next方法寫入到一個數組中去是不現實的,但是split方法提供了一個辦法:把一個字符串按某個標記分為幾段,而后直接初始化入某個字符串數組,如:

  
  
  
          
1 String eachShuru[] = shuru.split( " \\s+ " );

用這樣的方法可以避免一開始就需要指定數組長度的問題。

難點二:正則表達式的用法30分鍾入門正則表達式 

需要注意的是,在split方法中,由於正則表達式是在雙引號中,故,轉義字符\ 應該寫成\\ ,就這。

以下是回答:

  
  
  
          
1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 8 Scanner in = new Scanner(System.in); 9 10 String shuru = new String( "" ); 11 12 shuru = in.nextLine(); 13 in.close(); 14 15 String eachShuru[] = shuru.split( " \\s+ " ); 16 17 for ( int i = 0 ; i < eachShuru.length; i ++ ){ 18 if ( i < eachShuru.length - 1 ){ 19 System.out.print(eachShuru[i].length() + " " ); 20 } 21 else { 22 System.out.print(eachShuru[i].length() - 1 ); 23 } 24 } 25 26 27 } 28 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM