Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit fb1aeda

Browse files
author
Liu Yuning
committed
add util class
1 parent ed2d4a0 commit fb1aeda

File tree

2 files changed

+105
-10
lines changed

2 files changed

+105
-10
lines changed

README.md

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
# JavaCodeAcc
22
Java代码积累
3-
## basic
4-
- [正则表达式使用方式](./src/basic/UsingRegex.java)
5-
## data structure
6-
- [Stack - 使用泛型实现栈](./src/datastructure/Stack.java)
7-
- [生成Fibonacci数列](./src/datastructure/Fibonacci.java)
8-
## using containers
9-
- [利用迭代器实现反转](./src/containers/Reverse.java)
3+
4+
## concurrency
5+
- [演示线程的生命周期](./src/concurrency/ThreadLifeCycle.java)
6+
- [生产者-消费者](./src/concurrency/ProducerAndConsumer.java)
7+
108
## design pattern
119
@Todo 将模式按照分类重组顺序
1210
- [简单工厂模式](./src/designpattern/factory/simple/Calculator.java)
@@ -23,11 +21,26 @@ Java代码积累
2321
- [状态模式](./src/designpattern/state/StateClient.java)
2422
- [适配器模式](./src/designpattern/adapter/AdapterClient.java)
2523
- [备忘录模式](./src/designpattern/memento/MementoClient.java)
24+
- [组合模式](./src/designpattern/composite/CompositeClient.java)
25+
- [迭代器模式](./src/designpattern/iterator/IteratorClient.java)
26+
- [单例模式](./src/designpattern/singleton/SingletonClient.java)
27+
- [桥接模式](./src/designpattern/bridge/BridgeClient.java)
28+
- [命令模式](./src/designpattern/command/CommandClient.java)
29+
- [职责链模式](./src/designpattern/responsibilitychain/Client.java)
2630

31+
## data structure
32+
- [Stack - 使用泛型实现栈](./src/datastructure/Stack.java)
33+
- [生成Fibonacci数列](./src/datastructure/Fibonacci.java)
34+
35+
## using containers
36+
- [利用迭代器实现反转](./src/containers/Reverse.java)
2737

28-
## concurrency
29-
- [演示线程的生命周期](./src/concurrency/ThreadLifeCycle.java)
30-
- [生产者-消费者](./src/concurrency/ProducerAndConsumer.java)
3138
## tools
3239
- [@Todo 利用注解、反射实现一个小工具]()
3340
- [@Todo 批量修改文件后缀名]()
41+
42+
## util
43+
- [StringUtil类 - 封装常用的String方法](./src/util/StringUtil.java)
44+
45+
## basic
46+
- [正则表达式使用方式](./src/basic/UsingRegex.java)

src/util/StringUtil.java

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package util;
2+
3+
import java.util.Random;
4+
5+
/**
6+
* Util for String
7+
*
8+
* @author liu yuning
9+
*
10+
*/
11+
public class StringUtil {
12+
13+
private static final int DEFAULT_STRING_LENGTH = 10;
14+
15+
private static final String LETTERS = "abcdefghijkllmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
16+
17+
private static Random random = new Random();
18+
19+
/**
20+
* Don't let anyone instantiate this class.
21+
*/
22+
private StringUtil() {
23+
24+
}
25+
26+
/**
27+
*
28+
* @param str
29+
* @return {@code true} if the input {@code String} is null or ""
30+
*/
31+
public static boolean empty(final String str) {
32+
return str == null || str.trim().isEmpty();
33+
}
34+
35+
/**
36+
* generate random string
37+
*
38+
* @return a random string
39+
*/
40+
public static String generateRandomString() {
41+
return generateRandomString(DEFAULT_STRING_LENGTH);
42+
}
43+
44+
/**
45+
* generate random string using all letters and the given length
46+
*
47+
* @param stringLength
48+
* @return a random string
49+
*/
50+
public static String generateRandomString(int stringLength) {
51+
if (stringLength <= 0) {
52+
stringLength = DEFAULT_STRING_LENGTH;
53+
}
54+
55+
StringBuilder stringBuilder = new StringBuilder();
56+
57+
for (int i = 0; i < stringLength; i++) {
58+
stringBuilder
59+
.append(LETTERS.charAt(random.nextInt(LETTERS.length())));
60+
}
61+
62+
return stringBuilder.toString();
63+
}
64+
65+
/**
66+
* repeat a {@code String} called repeatStr for repeatNum times
67+
*
68+
* @param repeatStr
69+
* @param repeatNum
70+
* @return {@code String} repeatedString
71+
*/
72+
public static String repeatableString(String repeatStr, int repeatNum) {
73+
StringBuilder stringBuilder = new StringBuilder();
74+
75+
while (repeatNum-- > 0) {
76+
stringBuilder.append(repeatStr);
77+
}
78+
79+
return stringBuilder.toString();
80+
}
81+
82+
}

0 commit comments

Comments
 (0)