1. Java / Говнокод #12561

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    public class ExtractSubstrings {
    	public static void main(String[] args) {
    		String text = “To be or not to be”;
    		int count = 0;
    		char separator = ‘ ‘;
    
    		int index = 0;
    		do {
    			++count;
    			++index;
    			index = text.indexOf(separator, index);
    		} while (index != -1);
    
    		String[] subStr = new String[count];
    		index = 0;
    		int endIndex = 0;
    	
    		for(int i = 0; i < count; ++i) {
    			endIndex = text.indexOf(separator,index);
    			
    			if(endIndex == -1) {
    				subStr[i] = text.substring(index);
    			} else {
    				subStr[i] = text.substring(index, endIndex);
    			}
    			
    			index = endIndex + 1;
    		}
    
    		for(String s : subStr) {
    			System.out.println(s);
    		}
    	}
    }

    Очень чёткий, простой и с первого взгляда сразу понятный способ сделатЬ сплит строки.

    taburetka, 09 Февраля 2013

    Комментарии (34)
  2. Java / Говнокод #12539

    +115

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    try {
    	// Store settings in the database as a JSON string
    	machine.setSettings(CustomJacksonRepresentation.createCanonicalObjectMapper().writeValueAsString(
    			request.getSettings()));
    } catch (final JsonMappingException e) {
    	// We obtained request by parsing JSON in the first place,
    	// no way it can fail to be serialized back o_O
    	throw new AssertionError(e);
    } catch (final JsonGenerationException e) {
    	// See above
    	throw new AssertionError(e);
    } catch (final IOException e) {
    	// Why does writeValueAsString throw IOException anyway? How CAN you fail to write to a String?
    	// Seriously, what were the writers of Jackson smoking that they exposed IOException in the API
    	// in a method specifically designed to serialize to String, just because the underlying implementation
    	// uses StringWriter (which doesn't really throw IOException anyway)?
    	// I mean, I understand if the string is too long to fit in memory, but that's an OutOfMemoryError
    	throw new AssertionError(e);
    }

    someone, 05 Февраля 2013

    Комментарии (1)
  3. Java / Говнокод #12530

    +63

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    int i = (int)Math.pow(10, (n - 1)); 
              int max = i*5;
              int count = 0;
                
              for (i = i; i < max; i++) {  // i = i ??              
                 if (isUnique(i, i*2, n)) { 
                    count++;
                    System.out.printf("%s %s \n", i, i*2);
                 }

    Как обойтись без такого кулхацкерного самоприсваивания?

    Govnocoder#0xFF, 02 Февраля 2013

    Комментарии (8)
  4. Java / Говнокод #12507

    +77

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    public static long[] intArrayToLongArray(int[] in) {
        long[] out = new long[in.length];
        for (int i=0, n=in.length; i<n; i++)
            out[i] = in[i];
        return out;
    }
    
    public static void vibrateByResource(Context context, int resId) {
        Vibrator vibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);
        long[] pattern = intArrayToLongArray(context.getResources().getIntArray(resId));
        vibrator.vibrate(pattern, -1);
    }
    
    vibrateByResource(this, R.array.vibroPatternSuccess);

    vibrate() принимает только long[], но не int[], в ресурсах могут храниться только int[] но не long[]. В результате родился вот такой говнокодик.

    bormand, 30 Января 2013

    Комментарии (23)
  5. Java / Говнокод #12506

    +97

    1. 1
    2. 2
    3. 3
    Integer [] jh = new Integer [1];
    Integer j0 = new Integer(17);
    jh[0]= j0;

    Заполняем массив.

    3.14159265, 30 Января 2013

    Комментарии (46)
  6. Java / Говнокод #12503

    +70

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public static final void setManager(String name, MessageManager manager) {
            if ("doc".equals(name)) {
                doc = manager;
            } else {
                throw new RuntimeException("name is not 'doc' : " + name);
            }
        }

    Просто эпично! Даже добавить нечего

    tuba.linux, 30 Января 2013

    Комментарии (7)
  7. Java / Говнокод #12497

    +79

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    public static void loadSWT() {
    		try {
    			File file = null;
    			if (PlatformUtils.IS_WINDOWS) {
    				file = new File("lib/swtwin32.jar"); // x86
    				if (PlatformUtils.JVM_ARCH.equals("64")) {
    					file = new File("lib/swtwin64.jar"); // x64
    				}
    			} else if (PlatformUtils.IS_OSX) {
    				file = new File("lib/swtmac32.jar"); // x86
    				if (PlatformUtils.JVM_ARCH.equals("64")) {
    					file = new File("lib/swtmac64.jar"); // x64
    				} else if (PlatformUtils.OS_ARCH.startsWith("ppc")) {
    					file = new File("lib/swtmaccb.jar"); // carbon
    				}
    			} else if (PlatformUtils.IS_LINUX) {
    				file = new File("lib/swtlin32.jar"); // x86
    				if (PlatformUtils.JVM_ARCH.equals("64")) {
    					file = new File("lib/swtlin64.jar"); // x64
    				}
    			}
    			if ((file == null) || !FileUtils.isExistingFile(file)) {
    				file = new File("lib/swt.jar"); // old system
    			}
    			final Method method = URLClassLoader.class.getDeclaredMethod(
    					"addURL", new Class[] { URL.class });
    			method.setAccessible(true);
    			method.invoke(ClassLoader.getSystemClassLoader(), file.toURI()
    					.toURL());
    		} catch (final Exception e) {
    			e.printStackTrace();
    		}
    	}

    вот так приколачиваем SWT в систему.
    особенное веселье в строках 25-28.

    Lure Of Chaos, 29 Января 2013

    Комментарии (8)
  8. Java / Говнокод #12495

    +73

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    //QC 1487 - Modifying the order of creation of the SFC Teams.
    //DO NOT CHANGE THE ORDER, THIS WILL DISTURB THE ORDER OF DISPLAY IN THE UI.
    //The Order is 1) Credit Team 2) Comp Team 3) Servicing Team
    createCreditTeam(contract);     // Creating an Empty Credit Team.
    createCompTeam(contract);       // Creating an Empty Comp Team.
    createServicingTeam(contract);  // Creating an Empty Servicing Team.

    askell, 29 Января 2013

    Комментарии (0)
  9. Java / Говнокод #12494

    +64

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public class ClientSourceTranslator implements ITranslator
    {
      public Object map(Object input)
      {
        return String.valueOf(12);
      }
    }

    askell, 29 Января 2013

    Комментарии (8)
  10. Java / Говнокод #12492

    +71

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    private String getSecondsToTimeFormat(long startTime, long finishTime) {
    
            int secs = Math.round((finishTime - startTime) / 1000);
    
            int hours = secs / 3600,
                    remainder = secs % 3600,
                    minutes = remainder / 60,
                    seconds = remainder % 60;
    
            StringBuilder result = new StringBuilder();
    
            if (hours > 0) {
                result.append((hours < 10 ? "0" : "") + hours).append(":");
            }
    
            if (minutes > 0 || hours > 0) {
                result.append((minutes < 10 ? "0" : "") + minutes).append(":");
            }
    
            if (seconds > 0 || hours > 0 || minutes > 0) {
                result.append((seconds < 10 ? "0" : "") + seconds);
            }
    
            if (hours == 0 && minutes == 0) {
                if (seconds == 1) {
                    result.append(" second");
                } else {
                    result.append(" seconds");
                }
            }
    
            return result.toString();
        }

    Задача - перевести из секунд в человеческий формат

    nafania217518, 29 Января 2013

    Комментарии (8)