第五章(使用对象) 编程题一

单词长度(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 }
时间: 2024-10-17 06:40:26

第五章(使用对象) 编程题一的相关文章

C++ Primer第五章课后编程题

1. 代码 #include<iostream> int main() { using namespace std; int num1; int num2; int total=0; cout << "请输入开始数字\n"; cin >> num1; cout << "请输入结束数字\n"; cin >> num2; for (num1; num1<=num2; num1++) total = num

C++primer第十五章. 面向对象编程

面向对象编程基于三个基本概念:数据抽象.继承和动态绑定. 15.1. 面向对象编程:概述 面向对象编程的关键思想是多态性(polymorphism). 之所以称通过继承而相关联的类型为多态类型,是因为在许多情况下可以互换地使用派生类型或基类型的“许多形态”.正如我们将看到的,在 C++ 中,多态性仅用于通过继承而相关联的类型的引用或指针. 继承 派生类(derived class)能够继承基类(baseclass)定义的成员,派生类可以无须改变而使用那些与派生类型具体特性不相关的操作,派生类可以

Flask 学习笔记-第十五章-应用编程接口

(Rich Internet Application,RIA)的架构. 在RIA中,服务器的主要功能(有时是唯一功能)是为客户端提供数据存取服务. 在这种模式中,服务器变成了Web服务或应用编程接口(Application Programming Interface,API). 表现层状态转移(Representational State Transfer,REST)架构崭 露头角,成为Web程序的新宠,因为这种架构建立在大家熟识的万维网 基础之上. Web服务的REST架构方式,并列出了6个符

第五章 面向对象编程设计与开发——续3

5.9--封装 如何隐藏 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) #其实这仅仅是一种变形操作 #类中所有双下划线开头的名称如_x都会自动形成:_类名_x的形式: class A: _N=0#类的数据属性就应该是共享的,但是语法上是可以把类的数据属性设置成私有的如_N,会变形为_A_N def _init_(self): self._x=10#变形为self._A_X def _foo(self):#变形为_A_foo print('form A') def bar(s

第一本书 第五章(课后题)

1.选择题 1.C  2.A  3.C  4.D  5.B 2.简答题 1.利用循环结构解决问题的一般步骤是什么? 确定循环条件 → 确定循环体 → 写代码 2.使用while循环结构输出:100.95.90.85...5.先画出流程图,在编程实现.设置断点调试程序,观察循环变量的变化. package cn.bdqn.test; public class Dome2 { public static void main(String[] args) { int i=100; while(i>=5

第十五章 并发编程

1.操作系统的发展史 参考:http://www.cnblogs.com/Eva-J/articles/8253521.html 知识点 输入输出 -- 大部分时间都不会占用CPU,但会降低你程序的效率 操作系统的三种基本类型:多道批处理系统.分时系统.实时系统. 现在操作系统 基于多道批处理系统和分时系统 多个程序.作业在遇到IO操作的时候,操作系统会帮助你进行切换 让CPU的利用率得到最大的提高 2.进程 初识进程 进程: 运行中的程序 操作系统 只负责管理调度进程 进程是操作系统中资源分配

第五章 面向对象编程设计与开发——续

5.1   类.实例.属性.方法详解 类的语法 上面的代码其实有问题,属性名字和年龄都写死了,想传名字传不进去. class Person(object): def __init__(self, name, age): self.name = name self.age = age p = Person("Alex", 22) print(p.name, p.age) 为什么有__init__? 为什么有self? 此时的你一脸蒙逼,相信不画个图,你的智商是理解不了的! 画图之前, 你

第五章 面向对象编程设计与开发——续2

5.4--小结 从代码级别看面向对象 1.在没有学习类这个概念时,数据和功能是分离的 def exc1(host,port,db,charset): conn=connect(host,port,db,charset) conn.execute(sql) return xxx def exc2(host,port,db,charset,proc_name) conn=connect(host,port,db,charset) conn.call_proc(sql) return xxx #每次调

计算机操作系统第四、五章自测题-存储管理

一.单项选择题 1.存储管理的目的是(    ) . A.方便用户                 B.提高主存空间利用率 C.方便用户和提高主存利用率  D.增加主存实际容量 存储管理的目的有两个:一个是方便用户,二是提高内存利用率. 2.存储器管理中,下列说法正确的是(    ) A.无论采用哪种存储管理方式,用户程序的逻辑地址均是连续的 B.地址映射需要有硬件支撑地址变换 C.段表和页表都是由用户根据进程情况而建立的 D.采用静态重定位可实现程序浮动 静态重定位 当用户程序被装入内存时,一