-4

我已经查看是否有其他人问过这个问题,或者是否有类似类型的问题,但我找不到任何问题。

我创建了访问 Twitter 搜索 API 的代码。我能够访问 Twitter,并取回一些推文。但是我应该创建一个计算表情符号的应用程序。我创建了一个 Switch case 语句,它列出了我希望搜索 API 通过的所有表情符号,并且我想要对它们进行计数。如果它通过一个表情符号并且它在推文中,我希望它计算它。我有超过 100 个表情符号,我在它们自己的 switch case 语句中将它们分开。我如何计算可能出现在推文中的表情符号?请在java中。或者你能告诉我一条替代路线吗?

嗯不错

这是我的 Twitter 搜索 API 代码:

  public class searchingTwitter {
public static void main(String[] args) throws IOException {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    String urlstr = "http://search.twitter.com/search.json?q=";
    // that is the Twitter search API, i can request a search query and get tweets related to query
    StringBuffer buff = new StringBuffer();
    System.out.print("Search for : "); // this is where you input what you want the tweets on
    urlstr += in.readLine();
    URL url = new URL(urlstr);
    BufferedReader br = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
    // opens a connection to twitter and gets the tweets
    int c;
    while ((c=br.read()) !=-1) { // stores the tweets
        buff.append((char)c); 
    }br.close();    

    JSONObject js = new JSONObject(buff.toString()); //converts whatever is buffered from Twitter to String
    JSONArray tweets = js.getJSONArray("results");
    // results = array, represents a single tweet and all the information regarding that tweet
            JSONObject tweet;
    for(int i=0;i<tweets.length();i++) {
        tweet = tweets.getJSONObject(i);
        System.out.println((i+5)+") "+tweet.getString("from_user") // username of tweeter
                +" at "+tweet.getString("created_at")); // time tweet written/created
        System.out.println(tweets.getJSONObject(i).getString("text")+"\n"); // Prints out the tweet texts, one on a new line everytime
}

我怎么称呼幸福课?以便它可以查看并计算。

谢谢你帮助我!这是为了我的论文。

4

1 回答 1

2

使用地图而不是开关。开关实际上适用于具有特定代码片段执行的小型数据集。对于关联数据块来说,地图要好得多。同样在 jdk 7 之前,只有 int 可以用于 switch 语句。

public void updateEmoticonMap(Map<String,Integer> countMap, String emoticon){
    Integer count = countMap.get(emoticon);
    if(count == null){
        count = 0;
    }
    count++;
    countMap.put(emoticon,count);
}
于 2013-03-14T22:53:04.307 回答