我需要一些有关此应用程序当前障碍的指导。如果你能指出我正确的方向将有所帮助。基本上我有一个类似于应用程序的twitter,存储“推文”和用户数据的sql数据库。用户的昵称总是以“@”开头。现在一切正常,但我需要添加功能,如果我发送一个twit并“提到”一个用户,这意味着我添加@nickname,那么我提到的那个人应该在他的消息上看到它。我想我可以搞清楚,但我只是对如何开始感到困惑,特别是当我收到“推文”时如何找到“@”并返回包含“@”的单词?下一步应该是查看该昵称是否存在并通过昵称找到userID并更新其消息?请帮帮我。
这就是我正在努力的......不工作..
HttpSession session = request.getSession();
String tweet = request.getParameter("tweet");
ArrayList<User> x= new ArrayList<User>();
for(int i = 0; i < x.size(); i++){
String alias = x.get(i).getAlias();
if(tweet.contains(alias)){
try {
int uid= getUseridByNickName(alias);
Twit t = new Twit();
t.setMentionedUserID(uid);
} catch (SQLException ex) {
Logger.getLogger(TwitServlet.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
答案 0 :(得分:0)
要获取上述用户的用户名,您只需使用 indexOf 方法:
String s = "@user1 @user2 some text";
ArrayList<String> users = new ArrayList<>();
int index = s.indexOf("@");
while(index != -1) {
users.add(s.substring(index + 1, s.indexOf(" ", index)));
index = s.indexOf("@", index + 1);
}
users.stream().forEach(System.out::println);
请注意,此方法仅在用户名后跟空格时才有效,否则用户名还将包含“@”与其创建的第一个空格之间的文本(例如,推文“@ user1,some text”将返回“user1,”)