You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

StringUtils.java 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * Copyright (C) 2012-present the original author or authors.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package org.pf4j.util;
  17. /**
  18. * @author Decebal Suiu
  19. */
  20. public class StringUtils {
  21. public static boolean isNullOrEmpty(String str) {
  22. return (str == null) || str.isEmpty();
  23. }
  24. public static boolean isNotNullOrEmpty(String str) {
  25. return !isNullOrEmpty(str);
  26. }
  27. /**
  28. * Format the string. Replace "{}" with %s and format the string using {@link String#format(String, Object...)}.
  29. */
  30. public static String format(String str, Object... args) {
  31. str = str.replaceAll("\\{}", "%s");
  32. return String.format(str, args);
  33. }
  34. /**
  35. * <p>Adds a substring only if the source string does not already start with the substring,
  36. * otherwise returns the source string.</p>
  37. * <p/>
  38. * <p>A {@code null} source string will return {@code null}.
  39. * An empty ("") source string will return the empty string.
  40. * A {@code null} search string will return the source string.</p>
  41. * <p/>
  42. * <pre>
  43. * StringUtils.addStart(null, *) = *
  44. * StringUtils.addStart("", *) = *
  45. * StringUtils.addStart(*, null) = *
  46. * StringUtils.addStart("domain.com", "www.") = "www.domain.com"
  47. * StringUtils.addStart("abc123", "abc") = "abc123"
  48. * </pre>
  49. *
  50. * @param str the source String to search, may be null
  51. * @param add the String to search for and add, may be null
  52. * @return the substring with the string added if required
  53. */
  54. public static String addStart(String str, String add) {
  55. if (isNullOrEmpty(add)) {
  56. return str;
  57. }
  58. if (isNullOrEmpty(str)) {
  59. return add;
  60. }
  61. if (!str.startsWith(add)) {
  62. return add + str;
  63. }
  64. return str;
  65. }
  66. }