我需要帮助从Java中用户输入的字符串中提取单词

时间:2015-09-07 19:57:48

标签: java string

import java.util.Scanner;

public class Hastags 
{

    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in);
        System.out.println("Please input a message directed towards a user with @, as well as a #hashtag and a URL: ");
        String status = input.nextLine();

        int hashtag = status.indexOf(" ");
        int hashtag2 = status.indexOf("#", hashtag );
        System.out.println(status.substring(hashtag2));

    }

}

我需要程序在用户输入的字符串中找到#@的第一个实例和以https://开头的网址,然后将它们打印回给用户。现在它会找到主题标签,但会打印主题标签+后面的字符。

示例:Input = Test #test Test, Output = #test Test

1 个答案:

答案 0 :(得分:0)

你必须使用

status.substring(startIndex, endIndex);

在你的情况下

status.substring(hashtag2, hashtag);

否则它会在输入的hashtag的索引之后使用整个输入字符串,这不仅仅是#test。

编辑:我刚刚在你的代码中发现了另一个错误,你必须使用

int startOfHashtag = status.indexOf("#");
int endOfHashtag = status.indexOf(" ", startOfHashtag);
String hashtag = status.substring(startOfHashtag, endOfHashtag);

你的方式找到第一个空格,然后从那个位置开始搜索主题标签,我想这不是你想要的。