Jawa / Говнокод #8643 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
static String Colorize(String str) {
		str = str.replace("{BLACK}", "&0");
		str = str.replace("{DARKBLUE}", "&1");
		str = str.replace("{DARKGREEN}", "&2");
		str = str.replace("{DARKTEAL}", "&3");
		str = str.replace("{DARKRED}", "&4");
		str = str.replace("{PURPLE}", "&5");
		str = str.replace("{GOLD}", "&6");
		str = str.replace("{GRAY}", "&7");
		str = str.replace("{DARKGRAY}", "&8");
		str = str.replace("{BLUE}", "&9");
		str = str.replace("{BRIGHTGREEN}", "&a");
		str = str.replace("{TEAL}", "&b");
		str = str.replace("{RED}", "&c");
		str = str.replace("{PINK}", "&d");
		str = str.replace("{YELLOW}", "&e");
		str = str.replace("{WHITE}", "&f");

		str = str.replace("{0}", "&0");
		str = str.replace("{1}", "&1");
		str = str.replace("{2}", "&2");
		str = str.replace("{3}", "&3");
		str = str.replace("{4}", "&4");
		str = str.replace("{5}", "&5");
		str = str.replace("{6}", "&6");
		str = str.replace("{7}", "&7");
		str = str.replace("{8}", "&8");
		str = str.replace("{9}", "&9");
		str = str.replace("{A}", "&a");
		str = str.replace("{B}", "&b");
		str = str.replace("{C}", "&c");
		str = str.replace("{D}", "&d");
		str = str.replace("{E}", "&e");
		str = str.replace("{F}", "&f");

		str = str.replace("&", "\u00a7");
		return str;
	}

Запостил: Crazy_penguin Crazy_penguin, (Updated )

Комментарии (29) RSS

  • 1) replace => replaceAll (с точки зрения алгоритма, а не языка).
    2) В первой половине - использовать TableDriven.
    3) Во второй половине - цикл.
    Ответить
        • выражения для трусов
          ударения расставьте сами
          Ответить
        • Организовать нечто вроде этого: s/\{([A-F])\}/\\u00a7\1/g
          С буквенными кодами труднее: там в правой части нужно использовать мапу и ссылаться на \1 в качестве ключа.
          Ответить
          • >s/\{([A-F])\}/\\u00a7\1/g
            Не самодокументируемо и плохоподдерживаемо.

            >С буквенными кодами труднее
            Плохорасширяемо.

            >труднее: нужно использовать мапу и ссылаться на \1 в качестве ключа.
            Что же сразу код не написал? Думаю, там решение не короче будет.
            Ответить
            • > Не самодокументируемо и плохоподдерживаемо
              Это специфика RegExp
              > Что же сразу код не написал?
              Код писать лень. Работа с regexp в java многословна и неудобна. Но код получится более коротким и расширяемым, "я гарантирую это" (с)
              Ответить
        • Победил лень и наговнявкал пример с применением регулярных выражений. БОльшая часть кода - инициализация данных, сам код преобразования помещается в 7 строк.
          http://ideone.com/p0sba
          Ответить
          • Хороший код. Но есть в нем что-то такое, что мне не нравится.
            1. Громоздкость жабокода
            2. Pattern.CASE_INSENSITIVE

            Потому соглашусь со сказанным выше про TableDriven и цикл.
            http://govnokod.ru/8643#comment122252
            Ответить
            • CASE_INSENSITIVE (я специально его ввёл, потому что ненавижу набирать текст в верхнем регистре) можно и убрать, записать короче уже вряд ли удастся.
              Вариант, предлагаемый выше, плох тем, что в силу иммутабельности джава-строк будет создано дохрена ненужных объектов потенциально большого размера.
              Ответить
          • +1
            мужик сказал - мужик сделал, мужик сделал - всем рассказал!
            Ответить
  • ь O A)K$S$X)C)U.D:N$V I(V.E?Z(W!N$Z(Z Q:L:T!K.Z.I,P!F)ZYV F C EG.T,E.GH(E,D.FN!T!M(G?C.G.FT!XX?T,E,J$Q)Y!ME?B P:Y?D.Y L"I$N!V!G:JF)B K,PUL.E,B,H"K,G$M)R N?Q?V I(Z:J"D)S:Q!H E)P F,J$D!T!E(J.T,H(J?V C!D(Y:O D,O"V)M?M.W(R)F?C.G,P(K"L.IU!I A?N(K!BW$Y?E!LJ H$Z$T(G!Y,Q!A"D(C.K)L?R:I,V)Y:W:P"G,L$S"T!E!D?S:F,B?K"Q!O?SD!S)B:A J.H!C:V.F!C,O(EX,Z.J?C!ZY$L S)H?D)T)Z)D(M:O Q,H)M,Y.F:S?R:B(J?K$L(IO V(U!Y$L)K,T Z!S?R$J)I,R!C:N!G"K,A?Q,V:C(HM$P"Q.K U"U!T$Q!U N Y$I.J$A!B!T(H C?F"B)FJ)A$S:O,E,LU$ES?B"C S!Y.J"Q"K?Z,O.F)H,W.K$JN"W:KЩTJGJXRFHVHFSFHXSTRVGIYNTKEJHPTUHETADXTSKOBWAHWRHTUUVNYWFOTKABVUAODBIKWPFBUJVN
    Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8