10 / 10 / 2
Регистрация: 17.11.2011
Сообщений: 84

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

18.02.2012, 14:35. Показов 4275. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прочитать аргумент командной строки и добавить в него пробелы так, чтобы длинна строки равнялась заданному числу. Пробелы равномерно вставлять в начале и конце строки

Оригинал
Прочитати аргумент командного рядка і додати в нього пробіли так, щоб довжина рядка дорівнювала заданому числу. Пробіли рівномірно вставляти на початку і наприкінці рядка.


Вот что я пока написал,но это не считывает аргумент как число а токо как текст,подскажите как его считать и связать с insert и append.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util .*;
public class trenirovka {
 
  public static void main(String[] args) {
    System.out.println(args[0]);
      String s = args[0];
       
      StringBuffer sb = new StringBuffer(s);
      sb.append(" ");
   sb.insert(0," ");     
    System.out.println(sb);
  }
 
}
//для считывания использовал такую схему но мне просто выводит число(((
//Scanner x = new Scanner(System.in);
//double n=x.nextDouble();
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.02.2012, 14:35
Ответы с готовыми решениями:

Найти такой путь из клетки (1,1) в клетку (А, В), чтобы сумма чисел равнялась заданному числу К
Помогите написать программу к задаче Дано шахматную доску размером М на N. Шахматная фигура "мини-тура" может перемещаться...

Как сделать, чтобы аргумент командной строки не экранировался
Команда "app.exe arg1\narg2" После получения аргумента , args = "arg1\\narg2"; Как все же добиться перевода текста на новую...

Добавить программу в path, чтобы можно было вызывать её из командной строки
Ребят, подскажите, как программно добавить программу в path, чтобы можно было вызывать её из командной строки одним названием..а не...

19
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.02.2012, 14:50
омг украиинська мова на росийскому сайти )))
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Trenirovka {
 
    public static void main(String[] args) {
        System.out.println(args[0]);
        Integer len = Integer.parseInt(args[0]);
        int spaces = len / 2;
        StringBuffer sb = new StringBuffer(len);
        for (int i = 0; i < spaces; i++) {
            sb.append(" ");
            sb.insert(0, " ");
        }
        System.out.println(sb);
    }
}
0
10 / 10 / 2
Регистрация: 17.11.2011
Сообщений: 84
18.02.2012, 14:56  [ТС]
эта программа просто выводит аргумент
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.02.2012, 14:58
и пробелы вокруг него как у тебя и написано
0
10 / 10 / 2
Регистрация: 17.11.2011
Сообщений: 84
18.02.2012, 15:00  [ТС]
пробелов нет,токо число((
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
18.02.2012, 15:08
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
public class Main {
   public static void main(String[] args) {
      int n, count;
      try {
         n = Integer.parseInt(args[0]);
         if (n < 0) {
            System.err.println("Argument have an incorrect format");
            return;
         }
      } catch (NumberFormatException e) {
         System.err.println("Argument have an incorrect format");
         return;
      }
      byte notInt = (byte) ((count = n - ((int) Math.log10(n) + 1)) & 1);
      count >>= 1;
      StringBuffer result = new StringBuffer(String.valueOf(n));
      for (int i = 0; i < count; ++i) {
         result.insert(0, ".");
         result.append(".");
      }
      if (notInt == 1)
         result.insert(0, ".");
      System.out.println(result);
   }
 
}
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.02.2012, 15:11
сори - ошибка была, поправил, сепаратор меняй на пробел или что хош
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Trenirovka {
 
    public static void main(String[] args) {
        System.out.println(args[0]);
        Integer len = Integer.parseInt(args[0]);
        int spaces = len / 2;
        String separator = "_";
        StringBuffer sb = new StringBuffer(len.toString());
        for (int i = 0; i < spaces; i++) {
            sb.append(separator);
            sb.insert(0, separator);
        }
        System.out.println(sb.toString());
    }
}
оперативненько)))

Не по теме:

Добавлено через 4 минуты

Цитата Сообщение от M128K145 Посмотреть сообщение
byte notInt = (byte) ((count = n - ((int) Math.log10(n) + 1)) & 1); count >>= 1;
это гдеж там такие условия то ))))?

0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
18.02.2012, 15:17
Цитата Сообщение от mutagen Посмотреть сообщение
это гдеж там такие условия то ))))?
ну на сколько я понял задание
Цитата Сообщение от ruslannos Посмотреть сообщение
Прочитать аргумент командной строки и добавить в него пробелы так, чтобы длинна строки равнялась заданному числу. Пробелы равномерно вставлять в начале и конце строки
То при вводе числа 11 - строка должна быть длинной в 11 символов
0
10 / 10 / 2
Регистрация: 17.11.2011
Сообщений: 84
18.02.2012, 15:18  [ТС]
теперь работает,я убрал String separator = "_"; ,просто зделал так : sb.append("_");
sb.insert(0, "_");
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.02.2012, 15:24
Цитата Сообщение от M128K145 Посмотреть сообщение
То при вводе числа 11 - строка должна быть длинной в 11 символов
тогда нарушается второе условие про то что они должны быть равномерно с двух сторон

Не по теме:

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

0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
18.02.2012, 15:27
mutagen, ок, тогда для числа 58053 результирующая строка получается длинной в 58057 символов
Ждем уточнений от ТС
0
10 / 10 / 2
Регистрация: 17.11.2011
Сообщений: 84
18.02.2012, 15:30  [ТС]
можна как то упростить программу?или объединить,нада использовать те методы как у mutagen?не больше
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.02.2012, 15:30
Цитата Сообщение от M128K145 Посмотреть сообщение
mutagen, ок, тогда для числа 58053 результирующая строка получается длинной в 58057 символов
да точно, я завтыкал добавить
Java
1
int spaces = (len  - len.toString().length())/2;
0
10 / 10 / 2
Регистрация: 17.11.2011
Сообщений: 84
18.02.2012, 15:33  [ТС]
так при вводе 11 выводит 10 символов))
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.02.2012, 15:36
думаю далее уже не упростить
Java
1
2
3
4
5
6
7
8
9
10
11
public class Trenirovka {
 
    public static void main(String[] args) {
        Integer len = Integer.parseInt(args[0]);
        StringBuffer sb = new StringBuffer(len.toString());
        for (int i = 0; i < (len - len.toString().length()) / 2; i++) {
            sb.append(" ").insert(0, " ");
        }
        System.out.println(sb.toString());
    }
}
Добавлено через 1 минуту
Цитата Сообщение от ruslannos Посмотреть сообщение
так при вводе 11 выводит 10 символов))
так уточни, надо чтобы выполнялось количество или чтобы равномерно с двух сторон???
0
10 / 10 / 2
Регистрация: 17.11.2011
Сообщений: 84
18.02.2012, 15:41  [ТС]
надо что бы не с одной стороны а с двух выводились пробелы,под равномерно понимаем - не с одной стороны,например для числа 15 - можна 6 с одной 7 с другой
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
18.02.2012, 15:46
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Trenirovka {
 
    public static void main(String[] args) {
        Integer len = Integer.parseInt(args[0]);
        StringBuffer sb = new StringBuffer(len.toString());
        for (int i = 0; i < (len - len.toString().length()) / 2; i++) {
            sb.append(" ").insert(0, " ");
        }
        if (((len - len.toString().length()) % 2) == 1) {
            sb.append(" ");
        }
        System.out.println(sb.toString());
    }
}
1
10 / 10 / 2
Регистрация: 17.11.2011
Сообщений: 84
18.02.2012, 17:48  [ТС]
вот это оно,теперь все правильно работает,спасибо оставил,жалко что нельзя оставить ОГРОМНОЕ СПАСИБО)))
0
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 29
07.10.2014, 23:58
Извините,что апаю тему. но почему при компиляции последнего кода появляется ошибка "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException : 0". Как это исправить ?
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
08.10.2014, 00:04
D0mkrat, вы должны передавать длину строки аргументом для запуска программы. Для исправления этой проблемы можете изменить 4 строку так, чтобы значение считывалось из System.in
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.10.2014, 00:04
Помогаю со студенческими работами здесь

Добавить лишние «пробелы» между словами так, чтобы длина строки стала кратна 60
Текст некоторой строки вводится в режиме диалога и содержит простое предложение, в котором слова отделяются символом «пробел». Добавить...

Передать аргумент командной строки в Form1
Я нашел множество примеров обработки аргументов командной строки в консольном приложении, но никак не могу найти ни одного примера по...

Передать путь в аргумент командной строки
Задавал в программе путь к файлу через fs::path directory_path(D:\\f) нужно передать путь к файлам через аргументы командной строки...

Упорядочить строки матриц по числу элементов кратных заданному числу
Даны три целочисленные матрица A, B и C. Упорядочить строки матриц по числу элементов, кратных №, поставив на первое место строку с...

Аргумент командной строки – имя входного файла
Помогите, пожалуйста с реализацией. Необходимо создать консольное приложение с единственным аргументом командной строки – имя входного...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru