annotate artifacts-common/src/main/java/org/dive4elements/artifacts/common/utils/StringUtils.java @ 570:584591f8203c 3.2.x

Upgrade to Log4j 2
author Tom Gottfried <tom@intevation.de>
date Mon, 28 Feb 2022 17:41:14 +0100
parents 1f1f14c932ed
children
rev   line source
301
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 /*
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2 * Copyright (c) 2010 by Intevation GmbH
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 *
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 * This program is free software under the LGPL (>=v2.1)
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 * Read the file LGPL.txt coming with the software for details
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 * or visit http://www.gnu.org/licenses/ if it does not exist.
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 */
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8
475
415df0fc4fa1 Fixed maven group ids
Sascha L. Teichmann <teichmann@intevation.de>
parents: 472
diff changeset
9 package org.dive4elements.artifacts.common.utils;
301
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 import java.io.UnsupportedEncodingException;
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 import java.util.UUID;
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 import org.apache.commons.codec.DecoderException;
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 import org.apache.commons.codec.binary.Hex;
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18
570
584591f8203c Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 498
diff changeset
19 import org.apache.logging.log4j.Logger;
584591f8203c Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 498
diff changeset
20 import org.apache.logging.log4j.LogManager;
301
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 /**
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 * Commonly used string functions.
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 *
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a>
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 */
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 public final class StringUtils
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 {
570
584591f8203c Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 498
diff changeset
29 private static Logger logger = LogManager.getLogger(StringUtils.class);
301
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 /**
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 * Generated a random UUIDv4 in form of a string.
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 * @return the UUID
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 */
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35 public static final String newUUID() {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 return UUID.randomUUID().toString();
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 /**
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 * Checks if a given string is a valid UUID.
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 * @param uuid The string to test.
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 * @return true if the string is a valid UUID else false.
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43 */
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44 public static final boolean checkUUID(String uuid) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45 try {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 UUID.fromString(uuid);
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
48 catch (IllegalArgumentException iae) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
49 logger.warn(iae.getLocalizedMessage());
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 return false;
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52 return true;
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
53 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
54
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
55 /**
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
56 * Returns the UTF-8 byte array representation of a given string.
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
57 * @param s The string to be transformed.
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
58 * @return The byte array representation.
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
59 */
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60 public static final byte [] getUTF8Bytes(String s) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61 try {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
62 return s.getBytes("UTF-8");
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
63 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
64 catch (UnsupportedEncodingException usee) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
65 logger.error(usee.getLocalizedMessage(), usee);
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
66 return s.getBytes();
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
67 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
68 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
69
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
70 /**
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
71 * Tries to convert a Base64 encoded string into the
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
72 * corresponing byte array.
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
73 * @param s The Base64 encoded string
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
74 * @return The byte array representation or null if
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
75 * an decoding error occurs.
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
76 */
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
77 public static final byte [] decodeHex(String s) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
78 try {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79 return Hex.decodeHex(s.toCharArray());
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
80 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
81 catch (DecoderException de) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
82 return null;
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
83 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
84 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
85
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
86 public static final String repeat(String s, int count, String sep) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
87 if (count <= 0) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
88 return "";
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
89 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
90 StringBuilder sb = new StringBuilder(s);
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
91 for (--count; count > 0; --count) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
92 sb.append(sep).append(s);
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
93 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94 return sb.toString();
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
95 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
96
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
97 public static final String repeat(char c, int count, char sep) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
98 if (count <= 0) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
99 return "";
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
100 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 StringBuilder sb = new StringBuilder(2*count-1).append(c);
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102 for (--count; count > 0; --count) {
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
103 sb.append(sep).append(c);
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
104 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105 return sb.toString();
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
106 }
342
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
107
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
108 public static final String [] toUpperCase(String [] s) {
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
109 if (s == null) {
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
110 return null;
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
111 }
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
112 String [] d = new String[s.length];
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
113 for (int i = 0; i < s.length; ++i) {
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
114 if (s[i] != null) {
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
115 d[i] = s[i].toUpperCase();
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
116 }
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
117 }
9a85e0ef6e02 StringUtils: Added static method to convert an array of string to their uppercase counterparts.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 301
diff changeset
118 return d;
394
c40729bfe06d Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 376
diff changeset
119 }
376
87c0393749f0 StringUtils: Added static method to join strings with a separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 342
diff changeset
120
87c0393749f0 StringUtils: Added static method to join strings with a separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 342
diff changeset
121 public static String join(String sep, String [] strings) {
87c0393749f0 StringUtils: Added static method to join strings with a separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 342
diff changeset
122 StringBuilder sb = new StringBuilder();
87c0393749f0 StringUtils: Added static method to join strings with a separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 342
diff changeset
123 for (int i = 0; i < strings.length; ++i) {
87c0393749f0 StringUtils: Added static method to join strings with a separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 342
diff changeset
124 if (i > 0) sb.append(sep);
87c0393749f0 StringUtils: Added static method to join strings with a separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 342
diff changeset
125 sb.append(strings[i]);
87c0393749f0 StringUtils: Added static method to join strings with a separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 342
diff changeset
126 }
87c0393749f0 StringUtils: Added static method to join strings with a separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 342
diff changeset
127 return sb.toString();
87c0393749f0 StringUtils: Added static method to join strings with a separator.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 342
diff changeset
128 }
397
f2943ecd475f StringUtils: added contains(needle, haystack) method.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 394
diff changeset
129
401
d75b7d19a3df StringUtils: Added method to join two String arrays.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 397
diff changeset
130 public static final String [] join(String [] a, String [] b) {
d75b7d19a3df StringUtils: Added method to join two String arrays.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 397
diff changeset
131 if (a == null && b == null) return null;
d75b7d19a3df StringUtils: Added method to join two String arrays.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 397
diff changeset
132 if (a == null) return b;
d75b7d19a3df StringUtils: Added method to join two String arrays.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 397
diff changeset
133 if (b == null) return a;
d75b7d19a3df StringUtils: Added method to join two String arrays.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 397
diff changeset
134 String [] dst = new String[a.length + b.length];
d75b7d19a3df StringUtils: Added method to join two String arrays.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 397
diff changeset
135 System.arraycopy(a, 0, dst, 0, a.length);
d75b7d19a3df StringUtils: Added method to join two String arrays.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 397
diff changeset
136 System.arraycopy(b, 0, dst, a.length, b.length);
d75b7d19a3df StringUtils: Added method to join two String arrays.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 397
diff changeset
137 return dst;
d75b7d19a3df StringUtils: Added method to join two String arrays.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 397
diff changeset
138 }
d75b7d19a3df StringUtils: Added method to join two String arrays.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 397
diff changeset
139
498
1f1f14c932ed Framework: Added StringUtils.indexOf(needle, haystack) method.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 475
diff changeset
140 public static final int indexOf(String needle, String [] haystack) {
1f1f14c932ed Framework: Added StringUtils.indexOf(needle, haystack) method.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 475
diff changeset
141 for (int i = 0; i < haystack.length; ++i) {
1f1f14c932ed Framework: Added StringUtils.indexOf(needle, haystack) method.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 475
diff changeset
142 if (needle.equals(haystack[i])) {
1f1f14c932ed Framework: Added StringUtils.indexOf(needle, haystack) method.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 475
diff changeset
143 return i;
397
f2943ecd475f StringUtils: added contains(needle, haystack) method.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 394
diff changeset
144 }
f2943ecd475f StringUtils: added contains(needle, haystack) method.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 394
diff changeset
145 }
498
1f1f14c932ed Framework: Added StringUtils.indexOf(needle, haystack) method.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 475
diff changeset
146 return -1;
1f1f14c932ed Framework: Added StringUtils.indexOf(needle, haystack) method.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 475
diff changeset
147 }
1f1f14c932ed Framework: Added StringUtils.indexOf(needle, haystack) method.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 475
diff changeset
148
1f1f14c932ed Framework: Added StringUtils.indexOf(needle, haystack) method.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 475
diff changeset
149 public static final boolean contains(String needle, String [] haystack) {
1f1f14c932ed Framework: Added StringUtils.indexOf(needle, haystack) method.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 475
diff changeset
150 return indexOf(needle, haystack) != -1;
397
f2943ecd475f StringUtils: added contains(needle, haystack) method.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 394
diff changeset
151 }
301
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
152 }
b0a949d3fe09 Moved StringUtils to common package. Added some Override annotations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
153 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org