Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 标签倍数_Java_Loops_Unique - Fatal编程技术网

Java 标签倍数

Java 标签倍数,java,loops,unique,Java,Loops,Unique,我试图在用户输入的tweet中找到唯一hashtag的数量。例如,如果有人输入“#一#七#一紫绿色#红色”,它将显示3个独特的标签,分别为“#一、#七、#红色”。在我的代码中,我可以对一条tweet执行此操作,但我不知道如何输入多条tweet并从中找到所有唯一的hashtag package edu.bsu.cs121.jmgibson; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet;

我试图在用户输入的tweet中找到唯一hashtag的数量。例如,如果有人输入“#一#七#一紫绿色#红色”,它将显示3个独特的标签,分别为“#一、#七、#红色”。在我的代码中,我可以对一条tweet执行此操作,但我不知道如何输入多条tweet并从中找到所有唯一的hashtag

package edu.bsu.cs121.jmgibson;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Tweet {


public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Please enter a tweet");
    String tweet = scanner.nextLine();
    Set<String> hashtags = getHashtags(tweet);      
    System.out.println(hashtags.toString());
}

public static Set<String> getHashtags(String tweet) {
    String[] words = tweet.split(" ");
    Set<String> hashtags = new HashSet<String>();
    for (String word : words) {
        if (word.startsWith("#")) {
            hashtags.add(word);
        }
    }
    return hashtags;
}
}
包edu.bsu.cs121.jmgibson;
导入java.util.ArrayList;
导入java.util.array;
导入java.util.HashSet;
导入java.util.Scanner;
导入java.util.Set;
公共类推文{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
System.out.println(“请输入tweet”);
String tweet=scanner.nextLine();
设置hashtags=getHashtags(tweet);
System.out.println(hashtags.toString());
}
公共静态设置getHashtags(字符串tweet){
String[]words=tweet.split(“”);
Set hashtags=new HashSet();
for(字符串字:字){
if(word.startsWith(“#”){
hashtags.add(word);
}
}
返回标签;
}
}

我不想为你做家庭作业,但我会提供一些建议:

  • main()
    中,需要一个请求输入并进行调用的循环 到
    getHashtags()

  • 不是在
    getHashtags()
    的内部创建新的
    HashSet
    , 在
    main()
    (循环外部)中创建一个,并将其传入


  • 1.循环并获得许多tweet输入 差不多

    for(int i=0;i<100;i++)
    {
     System.out.println("Please enter a tweet");
     String tweet[i] = scanner.nextLine();
    }
    

    for(inti=0;i在main中需要一个循环来收集多个输入

    我会将您的输入收集到一个字符串中,以便使用已定义的getHashtags

    像这样的

    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Please enter a tweet");
    
    String tweet = "";
    while(!scanner.nextLine().equals("stop")){
          tweet += scanner.nextLine();
    }
    Set<String> hashtags = getHashtags(tweet);      
    System.out.println(hashtags.toString());
    
    publicstaticvoidmain(字符串[]args){
    扫描仪=新的扫描仪(System.in);
    System.out.println(“请输入tweet”);
    字符串tweet=“”;
    而(!scanner.nextLine().equals(“stop”)){
    tweet+=scanner.nextLine();
    }
    设置hashtags=getHashtags(tweet);
    System.out.println(hashtags.toString());
    
    }


    因此,一个循环和一个
    +=
    应该可以做到这一点。

    传递tweetstring数组是什么意思?你传递的是一条tweet,而不是很多tweet。下面的帖子可能会帮助你:你仍然会使用相同的Set hashtags=getHashtags(tweet);但是要知道你现在正在传递整个tweet数组,我想说的是什么
    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("Please enter a tweet");
    
    String tweet = "";
    while(!scanner.nextLine().equals("stop")){
          tweet += scanner.nextLine();
    }
    Set<String> hashtags = getHashtags(tweet);      
    System.out.println(hashtags.toString());