Advertisement
valet2102

Untitled

Jan 17th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.23 KB | None | 0 0
  1. package com.company;
  2. import java.util.Scanner; // для ввода юзером числа
  3.  
  4. public class Main {
  5.  
  6. public static void main(String[] args) {
  7. String symArray = "Howdoyoufightadragon?Youdon't,yourun.";
  8. char [] str = symArray.toCharArray();
  9. // Собсна выше превращаем строку в масив символов(это нам необходимо пушо в джаве строка != масив символов
  10. // и она не имеет доступа по индексу да и ваще с ним будет легче работаць идите нафиг!
  11. StringBuilder symArray2 = new StringBuilder();
  12. // StringBuilder создает пустой ОБЪЕКТ на 16 символов(капасити, которая увеличивается если этих символов при записи больше 16
  13. // сюда будем записывать сдвиг
  14. System.out.print("Input N value : ");
  15. Scanner var = new Scanner(System.in);
  16. int N = var.nextInt();
  17. // три строки выше очевидны, просто непривычный(кому-то) синтаксис
  18. if(N >= 0) {
  19. if(N <= symArray.length());
  20. else {
  21. N = N % symArray.length();
  22. }
  23. // Тут, думаю, все ясно. Если у нас N адекватное – работаем сразу, если выше длины строки – юзаем деление по модулю и узнаем
  24. // "нормальный" индекс элемента
  25. for (int i = N; i > 0; i--) {
  26. symArray2.append(str[str.length - i]);
  27. }
  28. // .append добавляет нужную подстроку в конец нашей строки, вспоминаем strcat в Си
  29. // добавление начинаем с необходимой нам позиции, думаю не сложно посчитать с какой на примере
  30. for (int i = 0; i < symArray.length() - N; i++) {
  31. symArray2.append(str[i]);
  32. }
  33. // просто дописываем остаток в конец строки
  34. } else if(N < 0) {
  35. int mod = Math.abs(N);
  36. if(mod <= symArray.length());
  37. else {
  38. mod = mod % symArray.length();
  39. }
  40. // аналогично с N >= 0
  41. for (int i = mod; i < symArray.length(); i++) {
  42. symArray2.append(str[i]);
  43. }
  44. // тут сначала пишем всю строку с нужной позиции в конец, а потом..
  45. for (int i = 0; i < mod; i++) {
  46. symArray2.append(str[i]);
  47. }
  48. // ..добавляем необходимые нам элементы в конец(сдвиг же влево блин)
  49. }
  50. System.out.println(symArray2);
  51. // вывод строки со сдвигом =)
  52. // если найдете ошибку либо еще чето – пингуйте в чате
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement