chaîne de caractères.équivaut pas de travail pour moi
C'est la partie utile de code:
java.util.List<Element> elems = src.getAllElements();
Iterator it = elems.iterator();
Element el;
String key,value,date="",place="";
String [] data;
int k=0;
Segment content;
String contentstr;
String classname;
while(it.hasNext()){
el = (Element)it.next();
if(el.getName().equals("span"))
{
classname=el.getAttributeValue("class");
if(classname.equals("edit_body"))
{
//java.util.List<Element> elemsinner = el.getChildElements();
//Iterator itinner = elemsinner.iterator();
content=el.getContent();
contentstr=content.toString();
if(true)
{
System.out.println("Done!");
System.out.println(classname);
System.out.println(contentstr);
}
}
}
}
Pas de sortie. Mais si je supprime le if(classname.equals("edit_body"))
état, il n'a imprimer (dans l'une des itérations):
Done!
edit_body
"I honestly think it is better to be a failure at something you love than to be a success at something you hate."
Ne pouvez pas obtenir le bug de la partie... à l'aide!
Je suis à l'aide d'une bibliothèque java BTW pour l'analyse html.
BTW, il y a deux erreurs au début de la sortie, qui est là dans les deux cas, avec ou sans condition if.:
Dec 20, 2012 11:53:11 AM net.htmlparser.jericho.LoggerProviderJava$JavaLogger error SEVERE: EndTag br at (r1992,c60,p94048) not recognised as type '/normal' because its name and closing delimiter are separated by characters other than white space
Dec 20, 2012 11:53:11 AM net.htmlparser.jericho.LoggerProviderJava$JavaLogger error SEVERE: Encountered possible EndTag at (r1992,c60,p94048) whose content does not match a registered EndTagType
Espère que l'habitude de la cause de l'erreur
Ok les gars, Quelqu'un m'expliquer s'il vous plaît! "edit_body".est égal à(el.getAttributeValue("classe")) a fonctionné!!
- Faire un
System.out.println(el.getName())
- Son coming-out à durée qui doit l'être
- vous code est manquant éléments clés avant de pouvoir commencer à aider.Ne src.getAllElements(); en fait, la sortie de quelque chose ? qu'est-ce que l'API pour l'Élément#getName ? En supposant que les égaux sur la chaîne doenst travail est tellement mauvais, vous pensez vraiment que java serait encore en vie si la méthode equals sur la Chaîne n'a pas de travail. En général, quand quelqu'un pense que l'API java est cassé, alors 99.999% du temps de ses pas java, mais leur propre code.
- Eh bien, bien sûr
src.getAllElements
est de donner de sortie comme itérateur fonctionne parfaitement si je supprimer leif
état. getName() vous donne le nom de la balise dans la chaîne de...jericho.htmlparser.net/docs/javadoc/index.html Et il est évident que je ne pense pas que la méthode equals est défectueux ou de l'API JAVA est cassé, sinon je n'aurais pas demandé pour votre aide.. Le titre de la question est le plus proche de la phrase que j'aurais donné! - Je n'ai jamais eu un problème avec cela, mais essayez de convertir les deux chaînes pour le même jeu de caractères? docs.oracle.com/javase/6/docs/api/java/lang/... Alors comparer tableau d'octets.
- Ok les gars!!!!! Quelqu'un m'expliquer s'il vous plaît!
"edit_body".equals(el.getAttributeValue("class"))
travaillé!! BAZINGA!!
Vous devez vous connecter pour publier un commentaire.
Dirait que vous êtes d'avoir leader ou de fuite des espaces dans votre
classname
.Essayez d'utiliser ceci: -
Ce qui supprimera l'un de ces espaces à la fin.
System.out.println(classname);
avec: -System.out.println("*" + classname + "*");
et voir ce que vous obtenez. Bien sûr, retirez d'abord queif
.*
fait italique, je pense. Remplacer*
avec-
, et de voir si la sortie est : -- edit_body -
, avec des espaces ou des-edit_body-
sans espaces.Dec 20, 2012 11:53:11 AM net.htmlparser.jericho.LoggerProviderJava$JavaLogger error SEVERE: EndTag br at (r1992,c60,p94048) not recognised as type '/normal' because its name and closing delimiter are separated by characters other than white space Dec 20, 2012 11:53:11 AM net.htmlparser.jericho.LoggerProviderJava$JavaLogger error SEVERE: Encountered possible EndTag at (r1992,c60,p94048) whose content does not match a registered EndTagType
Espère que l'habitude de la cause de l'erreurclassname.replaceAll("\\p{C}", "");
avant la comparaison.classname.replaceAll("[^\\x20-\\x7e]", "")
etclassname.replaceAll("\\p{C}", "")
, AUCUNE AIDE.. vraiment flippant 🙂 Très étrange!String url_str = "http://www.great-quotes.com/quotes/category/Funny/pg/1"; System.out.println(url_str); URL url = new URL(url_str); Source src = new Source(url);
s1.equals(s2)
devraient donner le même résultat ques2.equals(s1)
, si, bien entendu, aucun d'eux n'estnull
. C'est l'un des contrats deequals
méthode. Maintenant, je suis plus surpris par ce est le vrai problème.el.getAttributeValue("class").equals("edit_body")
et voir si cela fonctionne? Je veux dire, il devrait fonctionner. Il doit travailler. Il n'y a pas de 2ème comportement de cette.J'ai eu droit maintenant exactement le même problème.
J'succès pour le résoudre à l'aide de:
SomeStringVar.replaceAll("\\P{Print}","");
.Cette commande supprimer tous les caractères Unicode dans la variante (caracteres que vous ne pouvez pas voir la chaînes de ressembler à l'égalité, même ils ont pas vraiment l'égalité).
- Je utiliser cette commande sur chaque variante j'avais besoin de la péréquation, et ça fonctionne pour moi aussi.
Tout d'abord,
String.equals()
n'est PAS cassé. Il travaille pour millions d'autres programmes ou d'autres programmeurs. Ce n'est PAS la cause de vos problèmes (sauf si vous ou quelqu'un a délibérément modifié ... et cassé de votre installation de Java ...)Donc pourquoi les deux apparemment l'égalité des chaînes de comparer inégalité?
"edit_body".equals(el.getAttributeValue("class"))
travaillé!a.equals("b")
et"b".equals(a)
? Ne"b".equals(a)
supprime le "funky" caractères à partir d'une?modifier le code pour:
si le code entre les instruction si, maintenant, alors il y a évidemment une différence dans la chaîne de contenu lorsque vous utilisez l'original "classname=el.getAttributeValue("class");".
dans de tels cas, la boucle sur les caractères individuels et de comparer ces personnes à trouver la différence.
Si le code ne marche pas encore entrer dans l'instruction if, votre code n'est pas de la compilation et de vous sont en cours d'exécution de l'ancien code, ou de votre installation de java est cassé 😉
OU.
si java est tout comme .net (je ne sais pas java)
est "el.getAttributeValue" tapé comme une chaîne de caractères?
si elle est de type objet, puis si l'instruction ne serait pas entrer car ceux sont deux instances différentes de la même chaîne.