Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема String 
V
    Опции темы
Samotnik
Дата 5.4.2008, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Афигенно глобальная
Пишу вот так
Код

//a  это без раницы что
String str = "";
for(int i=0; i<a.size(); i++){
str = a[i];
}

Далее строк через 10 мне  нужно получить все значения из str (в котором содержится значения а)  но в str лежит только последнее  значение из а а не все! 
если писать так
Код

//a  это без раницы что
for(int i=0; i<a.size(); i++){
String str = a[i];
}

то при дальнейшем использовании str  его вообще не видно  smile    и что делать ? 

PM MAIL   Вверх
endryha
Дата 5.4.2008, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 24.3.2008

Репутация: нет
Всего: нет



Ты хочеш получить строку из множества значений а?
Если да то ты какойто бред написал... по пробуй так:
Код

String str = "";
for(int i=0; i<a.size(); i++){
str += a[i];
}

но этот вариант очень неправильный по скольку класс стринг является не изменяемым и в данном случае будет постоянно создаваться новая строка...
вот так получше будет
Код

StringBuffer sb = new StringBuffer();
for(int i=0; i<a.size(); i++){
sb.append(a[i]);
}

PM MAIL   Вверх
Samotnik
Дата 5.4.2008, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



endryha,  да причем  здесь это ?
Я говорю, про то ,  что я немогу доступ получить к  этой переменной, если я ее внутри цикла обьявляю!!!!  
А если вначале цикла обьявить, то в итоге в str  записывается тока последний элмент а не всЕ !!! 

Цитата(endryha @  5.4.2008,  19:40 Найти цитируемый пост)
 ты какойто бред написал

ты тоже !
Вопрос не в том, как  мне изменять или нет, про это я вообще ни сказал ни слова ! 
PM MAIL   Вверх
v2v
Дата 5.4.2008, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



Цитата(Samotnik @  5.4.2008,  19:46 Найти цитируемый пост)

Я говорю, про то ,  что я немогу доступ получить к  этой переменной, если я ее внутри цикла обьявляю!!!!  

почитай про видимость переменных. переменная объявлена внутри цикла, не будет видна после его завершения.
Цитата(Samotnik @  5.4.2008,  19:09 Найти цитируемый пост)
String str = "";
for(int i=0; i<a.size(); i++){
str = a[i];
}

конечно только последнее получишь, ты же на каждом шаге перезаписываешь str... работай внутри цикла.

Добавлено через 24 секунды
или выложи весь код.


--------------------
PM   Вверх
w1nd
Дата 5.4.2008, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 20
Всего: 54



Это была запоздалая попытка пошутить в честь первого апреля?


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Samotnik
Дата 5.4.2008, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



v2v,  я причины проблемы знаю, я не знаю как ее решить

Цитата(w1nd @  5.4.2008,  19:57 Найти цитируемый пост)
Это была запоздалая попытка пошутить в честь первого апреля?

нет
PM MAIL   Вверх
v2v
Дата 5.4.2008, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



похоже что нет smile


--------------------
PM   Вверх
SoulKeeper
Дата 5.4.2008, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.1.2007
Где: Ukraine, Lviv.

Репутация: 11
Всего: 15



Для того что-бы решить проблему нужно ее знать что решать.

Как решение проблемы с видимостью предлегаю исправить JVM, т.к. судя по теме это и тебуется.
PM MAIL   Вверх
Samotnik
Дата 5.4.2008, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



по делу можно что нибудь услышать ?

Добавлено @ 20:26
Вобщем без кода чувствую не  обойтись,  есть  метод 
Код

 public void getMessage(SOAPBody body) {
        
        Iterator itr = body.getChildElements();
        getContent(itr,"");
        System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++");
        System.out.println("Unsorted:");
        for(int n=0;n<6;n++){ 
            System.out.println(good[n].price + "\t" + good[n].name);
        }
        try{
            list = new ArrayList();
            for(int j=0;j<6;j++) {
                    if(good[j]!=null) {
                        list.add(good[j]);                     
                    }
                }
            System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++");
                System.out.println("Sorted:");
                Collections.sort(list,new Good());
                for(int i=0;i<list.size();i++) {
                    Good g = (Good)list.get(i);
                    System.out.println(g.price + "\t" + g.name);
                }
                Good gd = (Good)list.get(5);
                System.out.println("The biggest price is:" + "\t" + gd.price);
                System.out.println("The most expensive item is:" + "\t" + gd.name);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        Iterator it = body.getChildElements();
        SOAPBodyElement bodyElement = (SOAPBodyElement) it.next();
        try {
            NodeList OfPersons = bodyElement.getElementsByTagName("type");

            List<String> firstList = new ArrayList<String>();
            List<String> secondList = new ArrayList<String>();
            List<String> thirdList = new ArrayList<String>();

            for (int s = 0; s < OfPersons.getLength(); s++) {

                org.w3c.dom.Node firstPersonNode = OfPersons.item(s);
                if (firstPersonNode.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) {
                    Element firstPersonElement = (Element) firstPersonNode;
                    //-------
                    NodeList firstNameList = firstPersonElement.getElementsByTagName("price");
                    Element firstNameElement = (Element) firstNameList.item(0);
                    NodeList textFNList = firstNameElement.getChildNodes();
                    firstList.add(((org.w3c.dom.Node) textFNList.item(0)).getNodeValue().trim());
                    Collections.sort(firstList);
                    //-------
                    NodeList lastNameList = firstPersonElement.getElementsByTagName("code");
                    Element lastNameElement = (Element) lastNameList.item(0);
                    NodeList textLNList = lastNameElement.getChildNodes();
                    secondList.add(((org.w3c.dom.Node) textLNList.item(0)).getNodeValue().trim());
                    Collections.sort(secondList);
                    //----
                    NodeList ageList = firstPersonElement.getElementsByTagName("model");
                    Element ageElement = (Element) ageList.item(0);
                    NodeList textAgeList = ageElement.getChildNodes();
                    thirdList.add(((org.w3c.dom.Node) textAgeList.item(0)).getNodeValue().trim());
                    Collections.sort(thirdList);
                }
            }
            System.out.println("First   sorting : " + firstList);
            System.out.println("Second   sorting : " + secondList);
            System.out.println("Thirfd   sorting : " + thirdList);
            //***********
           Iterator itrList = firstList.iterator();
            String element= " ";
            Document document = new Document();
        try {
            PdfWriter.getInstance(document,
                    new FileOutputStream("D:\\work\\FilePDF.pdf"));
            document.open();
             document.add(new Paragraph(  ВОТ  СЮДА НУЖНО ЗАСУНУТЬ  ОБСОЛЮТНО ВЕ, что ВЫВОДИТСЯ  НА ЭКРАН В ЭТОМ МЕТОДЕ));
           
        } catch (DocumentException de) {
            System.err.println(de.getMessage());
        } catch (IOException ioe) {
            System.err.println(ioe.getMessage());
        }
        document.close();
            //***********
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
 
Мне нужно,  ВСЕ !!!!  что выводится через  System.out.println записать в  pdf ! 


Это сообщение отредактировал(а) Samotnik - 5.4.2008, 20:27
PM MAIL   Вверх
SoulKeeper
Дата 5.4.2008, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.1.2007
Где: Ukraine, Lviv.

Репутация: 11
Всего: 15



Ну собсвенно легко:

В начале метода создаем обьект StringBuilder

Код

StringBulder sb = new StringBuilder();


в него добавляем вместо вывода на экран

Код

sb.append(то что выводится на экран);
sb.append("\n"); // перевод строки


далее записываем строку в параграф

Код

document.add(new Paragraph(sb.toString()));


Это сообщение отредактировал(а) SoulKeeper - 5.4.2008, 20:39
PM MAIL   Вверх
Samotnik
Дата 5.4.2008, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



так понятнее ?  smile 
PM MAIL   Вверх
SoulKeeper
Дата 5.4.2008, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.1.2007
Где: Ukraine, Lviv.

Репутация: 11
Всего: 15



Понятнее, а вообще нужно учится выражать свои мысли корректно. Предыдущий пост обновил.
PM MAIL   Вверх
Samotnik
Дата 5.4.2008, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



SoulKeeper, все равно вы не поняли    smile 
Вот матрите!  у меня есть  метод (который я выложил)  в нем различные преобразования, работа с SOAP, XML, JMS  и т.д.  
Просмотрите код метода, там в разных местах есть вывод на экран через System.out.println
так вот, все это работает круто и идеально, НО мне нужно   помимо вывода на экран еще  все это же  записать в  pdf  файл !!!! 
Т.е. все что выводится на экран, все должно лежать в  pdf  файле !!
Понятно ?

Это сообщение отредактировал(а) Samotnik - 5.4.2008, 20:46
PM MAIL   Вверх
SoulKeeper
Дата 5.4.2008, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.1.2007
Где: Ukraine, Lviv.

Репутация: 11
Всего: 15



Код

public void getMessage(SOAPBody body) {
        
        StringBuilder sb = new StringBuilder(); // Создаем стринг билдер


        Iterator itr = body.getChildElements();
        getContent(itr,"");
        printAndAppend(sb, "+++++++++++++++++++++++++++++++++++++++++++++++");
        printAndAppend(sb, "Unsorted:");
        for(int n=0;n<6;n++){ 
               printAndAppend(sb, good[n].price + "\t" + good[n].name);
        }
        try{
            list = new ArrayList();
            for(int j=0;j<6;j++) {
                    if(good[j]!=null) {
                        list.add(good[j]);                     
                    }
                }
            printAndAppend(sb, "+++++++++++++++++++++++++++++++++++++++++++++++");
                printAndAppend(sb, "Sorted:");
                Collections.sort(list,new Good());
                for(int i=0;i<list.size();i++) {
                    Good g = (Good)list.get(i);
                    printAndAppend(sb, g.price + "\t" + g.name);
                }
                Good gd = (Good)list.get(5);
                printAndAppend(sb, "The biggest price is:" + "\t" + gd.price);
                printAndAppend(sb, "The most expensive item is:" + "\t" + gd.name);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
        Iterator it = body.getChildElements();
        SOAPBodyElement bodyElement = (SOAPBodyElement) it.next();
        try {
            NodeList OfPersons = bodyElement.getElementsByTagName("type");

            List<String> firstList = new ArrayList<String>();
            List<String> secondList = new ArrayList<String>();
            List<String> thirdList = new ArrayList<String>();

            for (int s = 0; s < OfPersons.getLength(); s++) {

                org.w3c.dom.Node firstPersonNode = OfPersons.item(s);
                if (firstPersonNode.getNodeType() == org.w3c.dom.Node.ELEMENT_NODE) {
                    Element firstPersonElement = (Element) firstPersonNode;
                    //-------
                    NodeList firstNameList = firstPersonElement.getElementsByTagName("price");
                    Element firstNameElement = (Element) firstNameList.item(0);
                    NodeList textFNList = firstNameElement.getChildNodes();
                    firstList.add(((org.w3c.dom.Node) textFNList.item(0)).getNodeValue().trim());
                    Collections.sort(firstList);
                    //-------
                    NodeList lastNameList = firstPersonElement.getElementsByTagName("code");
                    Element lastNameElement = (Element) lastNameList.item(0);
                    NodeList textLNList = lastNameElement.getChildNodes();
                    secondList.add(((org.w3c.dom.Node) textLNList.item(0)).getNodeValue().trim());
                    Collections.sort(secondList);
                    //----
                    NodeList ageList = firstPersonElement.getElementsByTagName("model");
                    Element ageElement = (Element) ageList.item(0);
                    NodeList textAgeList = ageElement.getChildNodes();
                    thirdList.add(((org.w3c.dom.Node) textAgeList.item(0)).getNodeValue().trim());
                    Collections.sort(thirdList);
                }
            }
            printAndAppend(sb, "First   sorting : " + firstList);
            printAndAppend(sb, "Second   sorting : " + secondList);
            printAndAppend(sb, "Thirfd   sorting : " + thirdList);
            //***********
           Iterator itrList = firstList.iterator();
            String element= " ";
            Document document = new Document();
        try {
            PdfWriter.getInstance(document,
                    new FileOutputStream("D:\\work\\FilePDF.pdf"));
            document.open();
             document.add(new Paragraph(sb.toString()));
           
        } catch (DocumentException de) {
            System.err.println(de.getMessage());
        } catch (IOException ioe) {
            System.err.println(ioe.getMessage());
        }
        document.close();
            //***********
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

private void printAndAppend(StringBuilder sb, String s){
sb.append(s).append("\n");
System.out.println(s);
}


Ну а если так нужно делать со всем приложением, то лутше установить свой принтсрим на System.out

Это сообщение отредактировал(а) SoulKeeper - 5.4.2008, 21:01
PM MAIL   Вверх
Samotnik
Дата 5.4.2008, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



SoulKeeper,  пасибо!  хотел сам написать ...  ну да ладно )))
Т.е.  моя задумка с String не осуществима  впринципе, для этого случая ?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.