С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/55: Рейтинг темы: голосов - 55, средняя оценка - 4.89
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458

Вывод, основанный на значении переменной

22.03.2013, 14:47. Показов 10913. Ответов 161
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет,понадобилась такая штучка -программа.В ней есть int и он равен ,например 1,если он равен 1,то выводим содержимое первых десяти файлов,если 2 то остальной десятки и так далее.Вот как такое сделать??
В принципе кусок кода тут есть:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.HashSet;
import java.util.Scanner;
 
 
public class ListFile {
    public static void main(String[] arg) {
        String sod = null;// содержимое файлов
 
        
        
        String[] list = new File("c:\\prov").list();
        
        int poz = 0;
        while (true) {
            System.out.println("************************************");
            for (int i = poz, k = 0; i < list.length; i++, k++) {
                if (k == 10) {
                    poz += 10;
                    break;
                }
                // System.out.println(list[i]);
                HashSet<String> hs = new HashSet<String>();
                
                File fileread = new File("C:\\prov\\" + list[i]);
                
                try {
                    BufferedReader brl = new BufferedReader(
                            new InputStreamReader(
                                    new FileInputStream(fileread), "UTF-8"));
                    try {
                        while ((sod = brl.readLine()) != null) {
                            hs.add(sod);
                            System.out.println(hs);// это надо разделить на
                                                    // страницы
 
                        }
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } catch (UnsupportedEncodingException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
 
            }
            System.out.println("************************************");
 
            System.out.println("Вывести еще? (Y/N)");
            
            Scanner sc = new Scanner(System.in);
            
            //String s = sc.nextLine();
            int pagel = sc.nextInt();
            if(pagel == 2){
                System.out.println("************************************");
                System.out.println(pagel);
                System.out.println("************************************");
                for (int i = poz, k = 0; i < list.length; i++, k++) {
                    if (k == 20) {
                        poz += 20;
                        break;
                    }
                    // System.out.println(list[i]);
                    HashSet<String> hs = new HashSet<String>();
                    
                    File fileread = new File("C:\\prov\\" + list[i]);
                    
                    try {
                        BufferedReader brl = new BufferedReader(
                                new InputStreamReader(
                                        new FileInputStream(fileread), "UTF-8"));
                        try {
                            while ((sod = brl.readLine()) != null) {
                                hs.add(sod);
                                System.out.println(hs);// это надо разделить на
                                                        // страницы
 
                            }
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    } catch (UnsupportedEncodingException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
 
                }
                
            }
            
            
            //if (s.toLowerCase().startsWith("n")) {
                //break;
            //}
        }
        //System.out.println("END");
    }
}
А именно:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
int pagel = sc.nextInt();
            if(pagel == 2){
                System.out.println("************************************");
                System.out.println(pagel);
                System.out.println("************************************");
                for (int i = poz, k = 0; i < list.length; i++, k++) {
                    if (k == 20) {
                        poz += 20;
                        break;
                    }
                    // System.out.println(list[i]);
                    HashSet<String> hs = new HashSet<String>();
                    
                    File fileread = new File("C:\\prov\\" + list[i]);
                    
                    try {
                        BufferedReader brl = new BufferedReader(
                                new InputStreamReader(
                                        new FileInputStream(fileread), "UTF-8"));
                        try {
                            while ((sod = brl.readLine()) != null) {
                                hs.add(sod);
                                System.out.println(hs);// это надо разделить на
                                                        // страницы
 
                            }
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    } catch (UnsupportedEncodingException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (FileNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
Но я думаю,что все это(В ней есть int и он равен ,например 1,если он равен 1,то выводим содержимое первых десяти файлов,если 2 то остальной десятки и так далее.Вот как такое сделать??) можно реализовать более меньшим кодом,и красивее,так сказать

Добавлено через 3 минуты
Плюс в выше указанном коде ,надо для каждого inta прописывать содержимое файлов,может есть унивирсальное решение?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2013, 14:47
Ответы с готовыми решениями:

Как при значении переменной 101 и выше установить значение переменной на 100?
Я в C# новичок. Подскажите пожалуйста, как можно сделать чтобы когда значение переменной было 101 и выше, значение переменной...

Загвоздка в значении переменной
int i = 5; i = ++i + ++i; Чему будет равно i? Помню, в Страуструпе что-то похожее было, но не вспомню.

Пробелы в значении переменной
@echo off if %1 == KhZ910U9 ( goto m1 ) else ( goto m2 ) :m1 set cor1=\install path echo %cor1% == %2

161
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
23.03.2013, 11:59  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Antenka Посмотреть сообщение
InputMismatchException
Вот это надо выбрать?
просто,когда я int в try заключаю у меня потом идет вывод же за пределами try,и он красным подсвечивает,значит теперь надо все в этом try?
Вот:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;
 
public class pag {
    public static void main(String[] args) {
 
        pagef();
 
        System.out.println("Какую страницу вам показать?: ");
        Scanner sc = new Scanner(System.in);
 
        try {
            int pageint = sc.nextInt();
            System.out.println(pageint);
        } catch (NumberFormatException e) {
            System.out.println("То,что вы ввели не является числом");
        } catch (InputMismatchException e) {
            System.out.println("То,что вы ввели не является числом");
        }
 
    }
 
    static ArrayList<String> pagef() {
        ArrayList<String> page = new ArrayList<String>();
        BufferedReader br = null;
        String s = null;
        File file = new File("C:\\prov");
        String list[] = file.list();
 
        try {
            for (int i = 0; i < list.length; i++) {
                File fileread = new File("C:\\prov\\" + list[i]);
                br = new BufferedReader(new InputStreamReader(
                        new FileInputStream(fileread), "UTF-8"));
                while ((s = br.readLine()) != null) {
                    page.add(s);
                }
                br.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return page;
 
    }
}
Цитата Сообщение от Antenka Посмотреть сообщение
мы считали 20 записей. Это 2 страницы. А пользователь нам вводит 3. И нам на это тоже как-то надо отреагировать.
Но может быть еще и 15 записей,это тоже две страницы,остатки на второй странице

Добавлено через 51 минуту
Что дальше?

Добавлено через 2 минуты
Сделал,кстати,примерное меню в сервлете,ссылки на страницы:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 
public class servletss extends HttpServlet {
 
    @Override
    public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
 
        res.setContentType("text/html");
        PrintWriter out = res.getWriter();
 
 
        File file = new File("C:\\prov");
        String list[] = file.list();
 
 
        out.println("<html>");
        out.println("<head>");
        out.println("<title>testservlets</title>");
        out.println("</head>");
        out.println("<body>");
 
        for (int i = 0; i < list.length; i++) {
            out.println("<a href=\"http://localhost:8080/test/servletss?i=" + i + "\" str=\"" + i + "\">" + i + "</a>");
 
        }
        out.println("</body>");
 
        out.println("</html>");
    }
}
Теперь понял хотя бы ,как переменные в сервлете передаются:

Java
1
http://localhost:8080/test/servletss?i=24
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.03.2013, 12:02
омг чёт вы растянули тему, пора уже помогать
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
 
public class TextPaginator {
 
    /**
     * Return selected page as list of strings was read from plain text file.
     * 
     * @param fRead
     *            File to read.
     * @param pageNumber
     *            Page number to show
     * @param linesPerPage
     *            Count of lines per page
     * @return
     */
    public List<String> getPage(File fRead, int pageNumber, int linesPerPage) {
        ArrayList<String> out = new ArrayList<>();
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader(fRead));
            String line = null;
            int counter = 0;
            while ((line = br.readLine()) != null) {
                if (counter / linesPerPage + 1 >= pageNumber) {
                    out.add(line);
                }
                if (counter + 1 == linesPerPage * pageNumber)
                    break;
                counter++;
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                br.close();
            } catch (IOException e) {
            }
        }
        return out;
    }
 
    static class Test {
        public static void main(String[] args) {
            File f = new File("src/TextPaginator.java");
            int i = 0;
            for (String s : new TextPaginator().getPage(f, 4, 6)) {
                System.out.println("line " + ++i + " " + s);
            }
        }
    }
}
1
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
23.03.2013, 12:05  [ТС]
А можете поподробнее,что делает эта программа??
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.03.2013, 12:09
Цитата Сообщение от Ванеек Посмотреть сообщение
А можете поподробнее,что делает эта программа??
там всё в жавадоке про неё написано )
2
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
23.03.2013, 12:16  [ТС]
Я так понял,она читает файл,показывает его строки,и дает им номер

Добавлено через 2 минуты
Цитата Сообщение от mutagen Посмотреть сообщение
омг чёт вы растянули тему, пора уже помогать
Не,я сам хочу разобраться,спасибо большое за помощь))
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.03.2013, 12:19
Цитата Сообщение от Ванеек Посмотреть сообщение
Не,я сам хочу разобраться,спасибо большое за помощь))
ну так код есть, можно разбираться )
вкратце программа генерирует лист строк из файла разбитого на страницы по linesPerPage количеству и выводит страницу pageNumber, если заданный номер страницы выходит за границы файла, будет возвращен пустой лист
1
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
23.03.2013, 12:38  [ТС]
Интересная программка,надо ждать Antenka
0
 Аватар для Antenka
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
23.03.2013, 14:01
Цитата Сообщение от Ванеек Посмотреть сообщение
Вот это надо выбрать?
В точку!


Цитата Сообщение от Ванеек Посмотреть сообщение
просто,когда я int в try заключаю у меня потом идет вывод же за пределами try,и он красным подсвечивает,значит теперь надо все в этом try?
Это происходит потому, что Вы объявляете переменную внутри блока видимости try {}. Точно так же, если Вы объявите переменную внутри цикла, снаружи она видна не будет и "все будет красным". Решается это просто: вынесением определения наружу

Цитата Сообщение от Ванеек Посмотреть сообщение
Но может быть еще и 15 записей,это тоже две страницы,остатки на второй странице
Дааа .. все правильно. И если у нас будет 15 записей, то 2я страница у нас есть (хоть и не полная). А вот 3й нет. Подумайте, как это можно решить. У нас есть общее количество записей и количество записей на страницу. Как узнать сколько страниц?

Цитата Сообщение от Ванеек Посмотреть сообщение
Что дальше?
Думаем над проверкой.

Цитата Сообщение от Ванеек Посмотреть сообщение
Сделал,кстати,примерное меню в сервлете,ссылки на страницы:
Давайте решать проблемы по мере поступления ... Сейчас на повестке дня вывод нужно страницы.

Цитата Сообщение от mutagen Посмотреть сообщение
омг чёт вы растянули тему, пора уже помогать
Да вот хочу, чтобы ТС сам пришел к решению. В прошлый раз Вы подсказали практически готовое решение. Он его взял, не разобрался и родилось еще 2 темы с похожим названием Получилось больше вопросов (которые не были озвучены) нежели ответов
1
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.03.2013, 14:08
Цитата Сообщение от Antenka Посмотреть сообщение
В прошлый раз Вы подсказали практически готовое решение.
в этот раз решение уже полностью готовое, просто внедрить класс в сервлет и пользоваться )))
если вернётся пустой лист выдать предупреждение что текст при такой разбивке имеет меньше страниц,
если нет просто вывести страницу, можно ещё навернуть чтобы выдавало ещё и номер максимальной страницы.
Просто ТС не желает разбираться сам, а желает чтобы ему разжевали и в рот положили )
так программисты не работают, а работают против ТЗ и если даже поначалу выходит говнокод, то это всё равно решение и
со временем программист научится как лучше.
в случае с ТС - нет никакого личного прогресса, например мне программисты с таким подходом в команде не нужны
2
 Аватар для Antenka
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
23.03.2013, 14:18
Цитата Сообщение от mutagen Посмотреть сообщение
в этот раз решение уже полностью готовое, просто внедрить класс в сервлет и пользоваться )))
Да-да, я поняла

Цитата Сообщение от mutagen Посмотреть сообщение
Просто ТС не желает разбираться сам, а желает чтобы ему разжевали и в рот положили )
ТС, ну же! Покажите, что mutagen в корне не прав!

Цитата Сообщение от mutagen Посмотреть сообщение
так программисты не работают, а работают против ТЗ и если даже поначалу выходит говнокод, то это всё равно решение и
со временем программист научится как лучше.
в случае ТС же нет никакого личного прогресса, например мне программисты с таким подходом в команде не нужны
Как я понимаю, ему не хватает знаний, чтобы разобраться в готовых примерах (Ванек, чтение правильных книг на Вашей совести). И я не дам ему решения пока он сам к нему не придет. Пусть и к плохенькому говнокоду, но это будет его собственное достижение (да и проще будет объяснить зачем нам нужен рефакторинг ). Да, согласна, мы тут вокруг этого примера еще кучу всего перелопатили ... но, я надеюсь, это даст свои плоды.
А про команду, полагаю, ему думать рано. Все еще очень сырова-то
2
10 / 36 / 7
Регистрация: 04.03.2013
Сообщений: 184
23.03.2013, 18:11
Была даже такая статья. Как лучше поступить - долго и нудно самому разбираться и делать или спросить у гуру. В итоге любое решение предоставленное гуру это частный случай. В итоге похожая задача вызывает эпическое затруднение и опять же обращение к гуру. А у нас ситуация подобная не находите ли? Человеку нужно было решить подобную задачу, код которой ему привели ранее, а он ни в зуб ногой.
1
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.03.2013, 18:15
Цитата Сообщение от Freeman666 Посмотреть сообщение
Как лучше поступить - долго и нудно самому разбираться и делать или спросить у гуру.
сначала спросить, а потом долго и нудно разбираться в коде, а потом завалить вопросами, а почему нельзя например так так или так.
самый верный алгоритм
1
 Аватар для Antenka
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
23.03.2013, 18:45
Цитата Сообщение от mutagen Посмотреть сообщение
сначала спросить, а потом долго и нудно разбираться в коде, а потом завалить вопросами, а почему нельзя например так так или так.
самый верный алгоритм
Если бы все умели все правильно самостоятельно разруливать, то, полагаю, форумы бы вымерли уже давно. Т.к. в интернетах есть ответы практически на все вопросы (я могу по пальцам посчитать темы, которые создавала с целью разобраться в чем-то ... и то, это или было вызвано проблемой с документацией, или вопросы в итоге становились "риторическими" ). А так - приходится на каждую сессию разруливать по 20 однотипных тем студентов, например, на работу с массивами. Чем не развлекуха?

Цитата Сообщение от Freeman666 Посмотреть сообщение
Была даже такая статья. Как лучше поступить - долго и нудно самому разбираться и делать или спросить у гуру. В итоге любое решение предоставленное гуру это частный случай. В итоге похожая задача вызывает эпическое затруднение и опять же обращение к гуру. А у нас ситуация подобная не находите ли? Человеку нужно было решить подобную задачу, код которой ему привели ранее, а он ни в зуб ногой.
Нда, ситуация сложная. И сказать наверняка кто из нас больше неправ (я, размышляя о высоком и вводя этим ТС в бОльшее заблуждение или mutagen, выдавая готовое решение). Пользуя готовое решение (не разбираясь в нем), ТС прийдет за таким же решением и в следующий раз. С другой стороны, чтение моих разглагольствований на тему иерархии исключений, должно только еще больше вводить в непонимание и порождать еще большее количество вопросов (как для человека, плавающего в вопросах области видимости переменных).

В любом случае, я настроена довести дело до конца и доразбирать с ТС-ом эту задачку под его чесное слово, что он потом пойдет не сервлетами заниматься, а заполнять пробелы в фундаментальных знаниях
2
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.03.2013, 19:43
Цитата Сообщение от Antenka Посмотреть сообщение
В любом случае, я настроена довести дело до конца и доразбирать с ТС-ом эту задачку под его чесное слово, что он потом пойдет не сервлетами заниматься, а заполнять пробелы в фундаментальных знаниях
Удачи вам и терпения обоим
2
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
23.03.2013, 20:30  [ТС]
Цитата Сообщение от Antenka Посмотреть сообщение
У нас есть общее количество записей и количество записей на страницу. Как узнать сколько страниц?
Разделить,наверно, а так как у нас int он правильно посчитает,но надо учитывать ,что на каждой странице по 10 записей,потому что при деление ,например 24(столько у меня в папке текстовых файлов) на 10,выдается 2,все ок))

Цитата Сообщение от Antenka Посмотреть сообщение
ТС, ну же! Покажите, что mutagen в корне не прав!
Постараюсь))

Цитата Сообщение от Antenka Посмотреть сообщение
(Ванек, чтение правильных книг на Вашей совести)
Усиленно читаю основы,но вот с переменной не получается,где try:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;
 
public class pag {
    public static void main(String[] args) {
 
        pagef(0);
 
        System.out.println("Какую страницу вам показать?: ");
        Scanner sc = new Scanner(System.in);
 
        try {
 
            int pageint = sc.nextInt();
            System.out.println(pageint);
 
        } catch (NumberFormatException e) {
            System.out.println("То,что вы ввели не является числом");
 
        } catch (InputMismatchException e) {
            System.out.println("То,что вы ввели не является числом");
 
        }
 
    }
 
    static ArrayList<String> pagef(int size) {
        ArrayList<String> page = new ArrayList<String>();
        BufferedReader br = null;
        String s = null;
        File file = new File("C:\\prov");
        String list[] = file.list();
 
        try {
            for (int i = 0; i < list.length; i++) {
                File fileread = new File("C:\\prov\\" + list[i]);
                br = new BufferedReader(new InputStreamReader(
                        new FileInputStream(fileread), "UTF-8"));
                while ((s = br.readLine()) != null) {
                    page.add(s);
                    size = page.size();
 
                }
                br.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return page;
 
    }
}
Добавлено через 6 минут
Цитата Сообщение от Ванеек Посмотреть сообщение
а так как у нас int он правильно посчитает
ну,он же не с плавающей точкой ,как double

Добавлено через 3 минуты
Цитата Сообщение от Antenka Посмотреть сообщение
А про команду, полагаю, ему думать рано. Все еще очень сырова-то
Конечно рано))

Добавлено через 1 минуту
Честно пытался перед try переменную pageint; подставить,
Не помогло что-то

Добавлено через 5 минут
Цитата Сообщение от mutagen Посмотреть сообщение
ТС - нет никакого личного прогресса
Почему я вот много нового узнал,сам метод написал(!!!),и вообще очень интересно,когда сам пишешь,что-то разбираешь,с помощью пока(и спасибо гигантское за эту помощь-разжевывание).А вообще:

Цитата Сообщение от mutagen Посмотреть сообщение

Не по теме:

все мы чего нибудь не знаем никто не застрахован, привычка неговнокодить вырабатывается очень долго и тяжко

0
 Аватар для Antenka
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
23.03.2013, 20:31
Цитата Сообщение от Ванеек Посмотреть сообщение
Разделить,наверно, а так как у нас int он правильно посчитает,но надо учитывать ,что на каждой странице по 10 записей,потому что при деление ,например 24(столько у меня в папке текстовых файлов) на 10,выдается 2,все ок))
В нужном направлении мыслим И, при делении выдастся не 2, а 2.4 (с округлением в нужную сторону, думаю, справитесь )

Цитата Сообщение от Ванеек Посмотреть сообщение
Усиленно читаю основы,
Отлично!

Цитата Сообщение от Ванеек Посмотреть сообщение
но вот с переменной не получается
Ок, поясню на примере с областью видимости:

Java
1
2
3
4
try {
            int pageint;            
        } 
//тут переменная уже не видна
а если так:

Java
1
2
3
4
5
int pageint;
try {
            //переменная видна и тут
} 
//переменная видна и тут тоже
Откуда к нам опять вернулась следующая конструкция?
Java
1
2
3
catch (NumberFormatException e) {
            System.out.println("То,что вы ввели не является числом"); 
}
... мы же вроде разобрались
1
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
23.03.2013, 20:55  [ТС]
Цитата Сообщение от Antenka Посмотреть сообщение
Откуда к нам опять вернулась следующая конструкция?

Java
1
2
3
catch (NumberFormatException e) {
* * * * * * System.out.println("То,что вы ввели не является числом"); 
}
... мы же вроде разобрались
Забыл удалить))
Так я так ее и определял,но у меня красным светит:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;
 
public class pag {
    public static void main(String[] args) {
 
        pagef(0);
 
        System.out.println("Какую страницу вам показать?: ");
        Scanner sc = new Scanner(System.in);
        int pageint;
        try {
 
            int pageint = sc.nextInt();
            System.out.println(pageint);
 
        } catch (InputMismatchException e) {
            System.out.println("То,что вы ввели не является числом");
 
        }
        System.out.println(pageint);
    }
 
    static ArrayList<String> pagef(int size) {
        ArrayList<String> page = new ArrayList<String>();
        BufferedReader br = null;
        String s = null;
        File file = new File("C:\\prov");
        String list[] = file.list();
 
        try {
            for (int i = 0; i < list.length; i++) {
                File fileread = new File("C:\\prov\\" + list[i]);
                br = new BufferedReader(new InputStreamReader(
                        new FileInputStream(fileread), "UTF-8"));
                while ((s = br.readLine()) != null) {
                    page.add(s);
                    size = page.size();
 
                }
                br.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return page;
 
    }
}
Красным светит int pageint = sc.nextInt();,а именно pageint

Добавлено через 2 минуты
Цитата Сообщение от Antenka Посмотреть сообщение
при делении выдастся не 2, а 2.4 (с округлением в нужную сторону, думаю, справитесь )
Это,да,но у нас же int он выдает 2 просто,зачем округлять то,даже вот :


Java
1
2
3
4
5
6
7
8
9
10
11
public class page {
    public static void main(String[] args) {
        
        int a = 29;
        int b = 10;
        int c = a/b;
        System.out.println(c);
 
    }
 
}
вроде бы должно быть 3,как учили ,больше пяти округляй)
0
 Аватар для Antenka
56 / 56 / 0
Регистрация: 15.03.2013
Сообщений: 88
23.03.2013, 21:04
Цитата Сообщение от Ванеек Посмотреть сообщение
Красным светит int pageint = sc.nextInt();,а именно pageint
Это потому, что Вы ее 2й раз внутри пытаетесь определить, а не использовать ту, которую определили выше. Думаю, Ваш компилятор Вам приблизительно таким текстом и должен был ругаться

Обратите внимание, что из 29 элементов у Вас получится 3 страницы (с последней 3й неполной), а не 2. int в этом деле не помощник
1
68 / 68 / 1
Регистрация: 21.12.2012
Сообщений: 458
23.03.2013, 21:17  [ТС]
А у меня 2 выводит).Вот с переменной ,все ок
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;
 
public class pag {
    public static void main(String[] args) {
 
        pagef(0);
 
        System.out.println("Какую страницу вам показать?: ");
        Scanner sc = new Scanner(System.in);
        int pageint = 0;
        try {
 
            pageint = sc.nextInt();
 
        } catch (InputMismatchException e) {
            System.out.println("То,что вы ввели не является числом");
 
        }
        System.out.println(pageint);
    }
 
    static ArrayList<String> pagef(int size) {
        ArrayList<String> page = new ArrayList<String>();
        BufferedReader br = null;
        String s = null;
        File file = new File("C:\\prov");
        String list[] = file.list();
 
        try {
            for (int i = 0; i < list.length; i++) {
                File fileread = new File("C:\\prov\\" + list[i]);
                br = new BufferedReader(new InputStreamReader(
                        new FileInputStream(fileread), "UTF-8"));
                while ((s = br.readLine()) != null) {
                    page.add(s);
                    size = page.size();
 
                }
                br.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        return page;
 
    }
}
Добавлено через 29 секунд
Цитата Сообщение от Antenka Посмотреть сообщение
int в этом деле не помощник
Что тогда?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
23.03.2013, 21:18
Цитата Сообщение от Ванеек Посмотреть сообщение
Красным светит int pageint = sc.nextInt();,а именно pageint
чтоб не светило надо
Java
1
2
3
4
5
6
        int i = 0;
        try {
            i = 2;
        } catch (Exception e) {
            e.printStackTrace();
        }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2013, 21:18
Помогаю со студенческими работами здесь

Замена символов в значении переменной
Доброго времени суток! Есть два файла: 1. config.ini: 2. backup.bat:

последний символ в значении переменной
Доброго всем времени суток! Бьюсь уже пару часов не могу вытащить последний символ в значении переменной, может кто-нибудь поможет? ...

Замена символов в значении переменной
Есть код который работал без помех (даты изымаемые из имени файла я в примере опустил). @Echo off REM Обрабатываем все файлы типа...

Ошибка в значении переменной, передаваемой в функцию
Странный вопрос конечно, ошибка в функции (верней число), но я не могу понять почему не работает правильно. #include &lt;iostream&gt; ...

Удалить несколько символов в значении переменной
Доброго времени суток ! Уважаемые профи помогите разобраться: Нужно удалить несколько символов в значении переменной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru