صفيف شخصية ساكس محلل إلى عدد صحيح؟
سؤال
أحاول الحصول على محتويات العلامات في متغيرات في محلل Java Sax الخاص بي. ومع ذلك ، فإن طريقة الأحرف تُرجع صفائف Char فقط. هل هناك على أي حال للحصول على صفيف char في int ؟؟؟
أحرف void العامة (char ch [] ، int start ، int) {
if(this.in_total_results) { // my INT varialble would be nice here! }
}
هل يوجد أحد يستطيع المساعد؟
أطيب التحيات،
أندي
المحلول
لكي تكون صحيحًا حقًا ، ستحتاج إلى ذلك جمع القيمة التي تم تمريرها بالأحرف ، حيث يمكن أن تسمى أكثر من مرة لكل علامة.
يمكن أن يحدث هذا بشكل ملحوظ إذا كان لديك كيانات في النص. علامة مثل <a>123</a>
يعادل <a>123</a>
(49،50،51 توضح ، لكنني أعتقد أن هذه هي الرموز الصحيحة لـ 1،2،3)
لذا ، إليك مقتطفات مأخوذة من هذا السؤال:
private StringBuffer curCharValue = new StringBuffer(1024);
@Override
public void startElement (String uri, String localName,
String qName, Attributes attributes) throws SAXException {
if(qName.equals("author")){
curCharValue.clear();
}
}
@Override
public void characters (char ch[], int start, int length) throws SAXException
{
//already synchronized
curCharValue.append(char, start, length);
}
@Override
public void endElement (String uri, String localName, String qName)
throws SAXException
{
if(qName.equals("author")){
String author = curCharValue.toString();
}
}
لتحويل من StringBuffer
إلى int ، فقط استخدم new Integer( curCharValue.toString() )
. لاحظ أن هناك طرقًا أخرى للتحويل من String
ل Integer
أو int
, ، كما أشار في التعليق.