سؤال

أحاول الحصول على محتويات العلامات في متغيرات في محلل Java Sax الخاص بي. ومع ذلك ، فإن طريقة الأحرف تُرجع صفائف Char فقط. هل هناك على أي حال للحصول على صفيف char في int ؟؟؟

أحرف void العامة (char ch [] ، int start ، int) {

  if(this.in_total_results) {
      // my INT varialble would be nice here!
  } 

}

هل يوجد أحد يستطيع المساعد؟

أطيب التحيات،

أندي

هل كانت مفيدة؟

المحلول

لكي تكون صحيحًا حقًا ، ستحتاج إلى ذلك جمع القيمة التي تم تمريرها بالأحرف ، حيث يمكن أن تسمى أكثر من مرة لكل علامة.

يمكن أن يحدث هذا بشكل ملحوظ إذا كان لديك كيانات في النص. علامة مثل <a>&#49;&#50;&#51;</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, ، كما أشار في التعليق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top