我正在编写一个程序来接受推文作为输入,并返回推文中使用的唯一主题标签的值。但是在countUniqueHashtags方法中,如果输入包含主题标签(即使有多个),我的hashtagCount变量将只返回值1,如果输入不包含任何主题标签,则返回值0。
public class UniqueHashtagCounter
{
static ArrayList<String> uniqueHashTags = new ArrayList<String>();
int numberOfTweetsToFollow;
public String tweetSpace = "";
Scanner in = new Scanner(System.in);
public int getTweetsToFollow()
{
System.out.println("Enter the number of Tweets you wish to follow: ");
numberOfTweetsToFollow = in.nextInt();
return numberOfTweetsToFollow;
}
public String tweetsInput()
{
for(int i = 0; i <= numberOfTweetsToFollow ; ++i)
{
if(in.hasNextLine()){
tweetSpace = tweetSpace + in.nextLine();
}
}
return tweetSpace;
}
public ArrayList<String> populateArray()
{
uniqueHashTags.add(tweetSpace);
for(String s: uniqueHashTags)
s.toLowerCase().split(" ");
for(int x = 0; x < uniqueHashTags.size(); x++){
countUniqueHashtags(uniqueHashTags);}
return uniqueHashTags;
}
static void countUniqueHashtags(ArrayList<String> strings)
{
int hashtagCount = uniqueHashTags.size();
ListIterator<String> listIterator = strings.listIterator();
while(listIterator.hasNext())
{
String e = listIterator.next();
if(e.startsWith("#"))
hashtagCount = hashtagCount + 1;
}
System.out.println("The number of unique hashtags is: " + hashtagCount);
}
答案 0 :(得分:1)
“如果输入包含主题标签(即使有多个标签),我的hashtagCount变量将只返回值1,如果输入不包含任何主题标签,则返回值0”
那是因为您使用的是startsWith()
:
if(e.startsWith("#"))
hashtagCount = hashtagCount + 1;
您需要遍历字符串并计算主题标签字符:
for(int i=0; e.length();i++){
if(e.charAt(i)=='#') hashtagcount++;
}