零基础学习Java语言——6、使用对象(1)[String操作解题]

简介: 零基础学习Java语言——6、使用对象(1)[String操作解题]

单词长度


题目内容:


你的程序要读入一行文本,其中以空格分隔为若干个单词,以‘.’结束。你要输出这行文本中每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如“it's”算一个单词,长度为4。注意,行中可能出现连续的空格。


输入格式:


输入在一行中给出一行文本,以‘.’结束,结尾的句号不能计算在最后一个单词的长度内。


输出格式:


在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。


输入样例:


It's great to see you here.


输出样例:


4 5 2 3 3 4


本题的三种解法:

import java.util.Scanner;
public class Main{
    public static  void main(String[] args){
        Scanner in = new Scanner(System.in);
//方法一 单独读入分别判断处理
        String src = in.next();
        String outPut = "";
        while(src.indexOf(".") == -1)
        {
            outPut += src.length() + " ";
            src = in.next();
        }
        if(src.length()-1 == 0 ){  //没有长度的不需要输出0
            if (!outPut.equals("")){
                outPut = outPut.substring(0, outPut.length()-1);
            }
        }
        else{
            outPut += src.length()-1;
        }
        System.out.println(outPut);
    }
}

1.png

import java.util.Scanner;
public class Main{
    public static  void main(String[] args){
        Scanner in = new Scanner(System.in);
//方法二  读行,split分割处理
        String src = in.nextLine();
        String outPut = "";
        if (src.indexOf(" ") != -1)
        {
            String[] s = src.split(" ");
            int m = s.length;
            for (int i = 0; i < m-1;i++)
            {
                if (s[i].length() > 0) {
                    outPut += s[i].length() + " ";
                }
            }
            if(s[m-1].length()-1 == 0 )//没有长度的不需要输出0
            {
                if (!outPut.equals("")){
                    outPut = outPut.substring(0, outPut.length()-1);
                }
            }
            else{
                outPut += s[m-1].length()-1;
            }
        }
        else
        {
            if(src.length()-1 != 0 )//没有长度的不需要输出0
            {
                outPut += src.substring(0,src.indexOf(".")).length();
            }
        }
        System.out.println(outPut);
    }
}

1.png

import java.util.Scanner;
public class Main{
    public static  void main(String[] args){
        Scanner in = new Scanner(System.in);
//方法三   读行,indexOf处理
        String src = in.nextLine();
        String outPut = "";
        int index = src.indexOf(" ");
        while(index != -1) {
            String per = src.substring(0,index);
            src = src.substring(index+1);
            if (per.length() > 0) {
                outPut += per.length() + " ";
            }
            index = src.indexOf(" ");
        }
        if(src.length()-1 == 0 ){  //没有长度的不需要输出0
            if (!outPut.equals("")){
                outPut = outPut.substring(0, outPut.length()-1);
            }
        }
        else{
            outPut += src.length()-1;
        }
        System.out.println(outPut);
    }
}

1.png

mooc上的课程习题,边学习边记录!

目录
相关文章
|
17天前
|
Java
Java快速入门之类、对象、方法
本文简要介绍了Java快速入门中的类、对象和方法。首先,解释了类和对象的概念,类是对象的抽象,对象是类的具体实例。接着,阐述了类的定义和组成,包括属性和行为,并展示了如何创建和使用对象。然后,讨论了成员变量与局部变量的区别,强调了封装的重要性,通过`private`关键字隐藏数据并提供`get/set`方法访问。最后,介绍了构造方法的定义和重载,以及标准类的制作规范,帮助初学者理解如何构建完整的Java类。
|
15天前
|
安全 Java
Object取值转java对象
通过本文的介绍,我们了解了几种将 `Object`类型转换为Java对象的方法,包括强制类型转换、使用 `instanceof`检查类型和泛型方法等。此外,还探讨了在集合、反射和序列化等常见场景中的应用。掌握这些方法和技巧,有助于编写更健壮和类型安全的Java代码。
30 17
|
1月前
|
Java
java代码优化:判断内聚到实体对象中和构造上下文对象传递参数
通过两个常见的java后端实例场景探讨代码优化,代码不是优化出来的,而是设计出来的,我们永远不可能有专门的时间去做代码优化,优化和设计在平时
31 15
|
2月前
|
存储 JavaScript Java
Java 中的 String Pool 简介
本文介绍了 Java 中 String 对象及其存储机制 String Pool 的基本概念,包括字符串引用、构造方法中的内存分配、字符串文字与对象的区别、手工引用、垃圾清理、性能优化,以及 Java 9 中的压缩字符串特性。文章详细解析了 String 对象的初始化、内存使用及优化方法,帮助开发者更好地理解和使用 Java 中的字符串。
Java 中的 String Pool 简介
|
2月前
|
缓存 安全 Java
java 为什么 String 在 java 中是不可变的?
本文探讨了Java中String为何设计为不可变类型,从字符串池的高效利用、哈希码缓存、支持其他对象的安全使用、增强安全性以及线程安全等方面阐述了不可变性的优势。文中还通过具体代码示例解释了这些优点的实际应用。
java 为什么 String 在 java 中是不可变的?
|
3月前
|
JSON Java 关系型数据库
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
在Java中,使用mybatis-plus更新实体类对象到mysql,其中一个字段对应数据库中json数据类型,更新时报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
292 4
Java更新数据库报错:Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'.
|
2月前
|
存储 Java
Java 11 的String是如何优化存储的?
本文介绍了Java中字符串存储优化的原理和实现。通过判断字符串是否全为拉丁字符,使用`byte`代替`char`存储,以节省空间。具体实现涉及`compress`和`toBytes`方法,前者用于尝试压缩字符串,后者则按常规方式存储。代码示例展示了如何根据配置决定使用哪种存储方式。
|
3月前
|
安全 Java 编译器
Java对象一定分配在堆上吗?
本文探讨了Java对象的内存分配问题,重点介绍了JVM的逃逸分析技术及其优化策略。逃逸分析能判断对象是否会在作用域外被访问,从而决定对象是否需要分配到堆上。文章详细讲解了栈上分配、标量替换和同步消除三种优化策略,并通过示例代码说明了这些技术的应用场景。
Java对象一定分配在堆上吗?
|
3月前
|
Java
在Java中如何将基本数据类型转换为String
在Java中,可使用多种方法将基本数据类型(如int、char等)转换为String:1. 使用String.valueOf()方法;2. 利用+运算符与空字符串连接;3. 对于数字类型,也可使用Integer.toString()等特定类型的方法。这些方法简单高效,适用于不同场景。
151 7
|
3月前
|
存储 缓存 NoSQL
一篇搞懂!Java对象序列化与反序列化的底层逻辑
本文介绍了Java中的序列化与反序列化,包括基本概念、应用场景、实现方式及注意事项。序列化是将对象转换为字节流,便于存储和传输;反序列化则是将字节流还原为对象。文中详细讲解了实现序列化的步骤,以及常见的反序列化失败原因和最佳实践。通过实例和代码示例,帮助读者更好地理解和应用这一重要技术。
89 0