【问题标题】:Java: Writing a static function that takes a string as an argument and returns the third word in the string?Java:编写一个将字符串作为参数并返回字符串中的第三个单词的静态函数?
【发布时间】:2013-10-04 23:58:43
【问题描述】:

编写一个将字符串作为参数并返回的静态函数 字符串中的第三个单词。使用以下命令调用该函数 字符串:

这是我的字符串

将结果打印到控制台。

Java 新手,在 (java 新手) 很难解决这个问题。我不知道如何解决这个问题。我已经想出了如何使用数组获得结果,但是数组甚至是可能的答案吗?我最麻烦的是字符串的第三个单词的返回。

编辑:

这就是我目前所要求的,只是不确定它是否正确

public class problem4 {

    public static void main(String[] args) {
        String[] str; 
        str = strArray();
        System.out.println(str[2]);
    }

    public static String[] strArray(){
        String[] array = {"This", "is", "my", "string"};
        return array;
    }
}

【问题讨论】:

  • 你有没有尝试过解决这个问题?如果是这样,请发布它,我们很乐意为您提供帮助。
  • 你检查split()substring()indexof()
  • 向我们展示您到目前为止所了解的内容(以代码的形式)。我们不会在 SO 上直接给出代码。试着想出一个解决方案,并提出一个具体的问题。
  • 我不明白为什么每个人都会对此投反对票。他显然是新人,他向我们展示了他的尝试(这是在正确的轨道上)。让这家伙松懈……

标签: java string static return


【解决方案1】:

这是在正确的轨道上,但它并不是问题所要求的。

您在这里遗漏了两件大事。首先,您需要将其放入一个接受字符串的静态函数中(这意味着您必须自己制作,不能使用 main)。看起来像这样 -

public static String getThirdWord(String s){

其次,假设你得到一个 String 数组,你的逻辑是有效的。虽然问题表明你得到了String。这意味着您必须先做一些工作才能使用(大部分正确的)数组表示法。这就是你需要的

String[] words = s.split(" ");

这将接受输入,并将其“分割”成空间周围的部分。您实际上是在取回单个单词的数组。

然后你就可以开始使用数组表示法了——

return words[2];

但是:您可能会得到少于三个单词的输入!当您执行words[2] 时,这将导致抛出异常。你的问题没有说明在这种情况下该怎么做,但你几乎肯定需要通过 if(words.size>2) 来检查大小

【讨论】:

  • 如果单词之间有多个空格,则由单个空格分割可能会导致一些问题。当然,这是特殊情况,但需要注意。那么 s.trim().split("\\s+")
  • @dragon66 我不认为这是理想的输入,因为这是一个初学者问题。我不想让它太复杂,而正则表达式会做到这一点。这里有很多事情没有考虑(即空值),我只是假设不会有问题。
  • 感谢您的帮助我会记住的。我犹豫使用 s.split 的原因是因为我们还没有深入了解材料,而我即将进行的测试目前仅涵盖某些章节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
  • 1970-01-01
  • 2012-04-03
  • 1970-01-01
  • 2022-12-01
相关资源
最近更新 更多