Я написал эту небольшую часть здесь, чтобы найти теги по темам электронной почты, извлечь их и сохранить их в свой набор.Java String Parser, чтобы найти строку, сохранить ее и распечатать
I.e. если тема электронной почты «Hello there #bro #senpai», она должна найти и извлечь как «bro», так и «senpai» и поместить его в m_aTags (который является обычным типом Set - this.m_aTags = new HashSet(); я создаю его)
in m_aTags Я помещаю все новые теги в объекты MyTag.
public ADOTag(String sTagName){
this.sTagName = sTagName;
}
Вот довольно простой конструктор.
private void parseSubject(String sSubject) {
Pattern aPattern = Pattern.compile("#(\\w+|\\W+)");
//this patter checks for '#anyword'
Matcher aMatcher = aPattern.matcher(sSubject);
this.m_sSubject = sSubject;
while (aMatcher.find()) {
String sTagPart = aMatcher.group();
this.m_aTags.add(new MyTag(sTagPart));
}
for (MyTag s : m_aTags) {
System.out.println(s);
}
}
Я пытаюсь напечатать его из набора в этом для цикла, но вместо строк я получить что-то вроде: [email protected]
Я не уверен, почему это показ вместо «брата» и «сэмпая». Я хочу напечатать его и использовать его как строку, я не могу думать ни о чем, что будет делать, поскольку я уже много пробовал.
Я не знаю, что делать, кто может помочь мне :)
ОТВЕТ: мне пришлось переопределить ToString() метод в классе MyTag :)
@Override
public String toString() {
return String.format(sTagName);
}
Этот странный вывод вызван тем, что ваш класс 'MyTag' не переопределяет метод' toString() '. – Jesper
Спасибо, я применил его, и он работал как шарм :) –