博客
关于我
【再探JAVA】Split & 继承实现_Oracle赛前试考
阅读量:201 次
发布时间:2019-02-28

本文共 1975 字,大约阅读时间需要 6 分钟。

今天遇到了一个有趣的场景——Oracle的赛前试考来得及时!作为一个自认为对Java还有些差距的新手,在高人@ZoeCur的指导下,终于完成了这场试考。虽然试题内容有些特别,但还是学到了不少东西。

一、初探String.split的深奥之处

试考中有一道选择题看似简单,却让我陷入了一番思考。题目问的是:"split方法的作用是什么?"一开始我以为是问split方法能够实现什么功能,但后来在查看答案时发现,题目实际上是在问split方法能将字符串分成多少份。这个问题看似简单,实则考察了对String.split方法的理解。

二、完整代码解析

为了更直观地理解问题,我决定写出一个完整的代码示例。以下是源码:

package Test01;public class Test {	public static void main(String[] args) {		String text = "Welcome to Java contest";		String[] words = text.split("\s");		System.out.println(words.length);	}}

编译时,发现一个问题——在\s部分出现了错误提示:"Invalid escape sequence"。经过查阅资料,了解到\s不是Java中的有效转义字符。正确的做法是直接使用空格字符,或者使用\b\t\n等其他转义字符。

三、split方法的实际应用

为了更深入理解split方法,我参考了MSDN上的C#示例。通过对比不同语言中的split实现,发现每种语言都有自己的特点。例如,在C#中,可以通过传递字符数组来指定分隔符,而Visual Basic则使用字符串分隔符。

四、split方法的重要特性

通过进一步研究split方法的文档,掌握了以下几点关键信息:

  • 分隔符不包含在结果中:使用split方法后,分隔符不会出现在数组中。
  • 处理空白字符:如果分隔符为null或为空字符串,split方法会自动使用空白字符作为分隔符。
  • 空白字符的定义:根据Unicode标准,空白字符包括空格、制表符、换行符等。
  • 五、示例分析

    为了更直观地理解split方法的行为,我分析了以下几个示例:

  • 简单字符串
    • 输入:"42, 12, 19"
    • 分隔符:{",", " "}
    • 输出:{"42", "", "12", "", "19"}
  • 含有多个分隔符
    • 输入:"42..12..19"
    • 分隔符:{".", "", "."}
    • 输出:{"42", "", "12", "", "19"}
  • 带有特殊字符
    • 输入:"Darb\nSmarba"
    • 分隔符:{\n}
    • 输出:{"Darb", "Smarba"}
  • 六、实践中的收获

    通过这次试考,我深刻体会到以下几点:

  • 细节决定成败:一小处的转义字符错误可能导致程序运行错误。
  • 注重理解文档:熟悉split方法的文档是掌握它的关键。
  • 实践是最好的老师:通过编写和调试代码,能够更直观地理解split方法的行为。
  • 七、继承与实现的探索

    为了拓宽知识面,我尝试解决了一个关于继承与实现的编程题。题目要求创建一个抽象类Shape,并实现一个具体的Rectangle类。同时,还需要实现一个接口并创建对应的实现类。

    八、代码实现

    以下是完整的代码示例:

    package Test02;public abstract class Shape {    abstract public int getArea();}public class Rectangle extends Shape {    private int width;    private int height;    public Rectangle(int w, int h) {        width = w;        height = h;    }    public void setWidth(int width) {        this.width = width;    }    public void setHeight(int height) {        this.height = height;    }    public int getArea() {        return width * height;    }}

    九、接口的实现

    为了进一步理解接口的概念,我创建了一个接口IList,并实现了一个MyList类。

    十、总结与展望

    这次试考不仅让我复习了Java的基础知识,还让我对split方法和OOP概念有了更深入的理解。未来,我会继续加强对Java核心库的掌握,同时尝试更多编程题,以提升自己的编程能力。

    转载地址:http://gpwi.baihongyu.com/

    你可能感兴趣的文章
    Notepad ++ 安装与配置教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    Notepad++在线和离线安装JSON格式化插件
    查看>>
    notepad++最详情汇总
    查看>>
    notepad++正则表达式替换字符串详解
    查看>>
    notepad如何自动对齐_notepad++怎么自动排版
    查看>>
    Notes on Paul Irish's "Things I learned from the jQuery source" casts
    查看>>
    Notification 使用详解(很全
    查看>>
    NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()
    查看>>
    NotImplementedError: Could not run torchvision::nms
    查看>>
    nova基于ubs机制扩展scheduler-filter
    查看>>
    Now trying to drop the old temporary tablespace, the session hangs.
    查看>>
    nowcoder—Beauty of Trees
    查看>>
    np.arange()和np.linspace()绘制logistic回归图像时得到不同的结果?
    查看>>
    np.power的使用
    查看>>
    NPM 2FA双重认证的设置方法
    查看>>
    npm build报错Cannot find module ‘html-webpack-plugin‘解决方法
    查看>>
    npm build报错Cannot find module ‘webpack/lib/rules/BasicEffectRulePlugin‘解决方法
    查看>>
    npm build报错Cannot find module ‘webpack‘解决方法
    查看>>
    npm C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1
    查看>>