java中StringBuilder res = new StringBuilder();
时间: 2023-08-23 18:06:05 浏览: 61
这行代码的作用是创建一个StringBuilder对象,命名为res,并且初始化为空字符串。StringBuilder是一个可变的字符序列,可以动态地添加、修改、删除其中的字符,相比于String类,StringBuilder在处理大量字符串拼接操作时具有更高的效率。在这行代码中,res可以用于拼接字符串,例如调用res.append("hello")可以将"hello"字符串添加到StringBuilder对象的末尾。
相关问题
import re while True: try: list1 = input().split() rule = input() res = list() for p in rule: if p == "*": res.extend(["(", ".", "*", ")"]) continue res.append(p) rule = "".join(res) ans = [str(i) for i in range(len(list1)) if re.match(rule, list1[i])] print(",".join(ans) if ans else 0) except: break ,上述代码用java输出
以下是将上述代码转换为 Java 的版本:
```java
import java.util.Scannerimport java.util.regex.Matcher;
java.util.regex.Pattern;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
try {
String[] list1 = scanner.nextLine().split(" ");
String rule = scanner.nextLine();
StringBuilder res = new StringBuilder();
for (char p : rule.toCharArray()) {
if (p == '*') {
res.append("(.*)");
} else {
res.append(p);
}
}
String regex = res.toString();
Pattern pattern = Pattern.compile(regex);
StringBuilder ans = new StringBuilder();
for (int i = 0; i < list1.length; i++) {
Matcher matcher = pattern.matcher(list1[i]);
if (matcher.matches()) {
ans.append(i).append(",");
}
}
if (ans.length() > 0) {
System.out.println(ans.substring(0, ans.length() - 1));
} else {
System.out.println("0");
}
} catch (Exception e) {
break;
}
}
}
}
```
请注意,此代码是将原始代码直接转换为 Java 的版本,并可能需要根据实际情况进行调整和优化。
string 的全排列 java 思路是啥
字符串的全排列可以使用回溯算法来实现。具体思路如下:
1. 将字符串转换成字符数组,方便进行操作。
2. 定义一个 boolean 类型的数组 used,用于标记字符是否已经被使用过。
3. 定义一个 StringBuilder 类型的变量 sb,用于存储当前的排列结果。
4. 定义一个递归函数,用于生成全排列。函数的参数包括字符数组、used 数组、sb 变量、当前处理的位置以及字符串的长度。
5. 在递归函数中,首先判断当前处理的位置是否等于字符串的长度,如果是,则说明已经生成了一种排列,将当前排列加入结果集中。
6. 如果当前处理的位置小于字符串的长度,那么就遍历字符数组,对于每个字符,判断它是否已经被使用过,如果已经使用过,则跳过;否则,将其加入到 sb 变量中,并将 used 数组中对应的位置标记为已使用。
7. 然后递归处理下一个位置,处理完成后,需要将当前字符从 sb 变量中删除,并将 used 数组中对应的位置标记为未使用,以便后续的处理。
8. 最后返回结果集即可。
Java 代码实现如下:
```java
public List<String> permutation(String s) {
List<String> res = new ArrayList<>();
if (s == null || s.length() == 0) {
return res;
}
char[] arr = s.toCharArray();
boolean[] used = new boolean[arr.length];
StringBuilder sb = new StringBuilder();
dfs(arr, used, sb, res, 0, arr.length);
return res;
}
private void dfs(char[] arr, boolean[] used, StringBuilder sb, List<String> res, int index, int len) {
if (index == len) {
res.add(sb.toString());
return;
}
for (int i = 0; i < len; i++) {
if (!used[i]) {
used[i] = true;
sb.append(arr[i]);
dfs(arr, used, sb, res, index + 1, len);
sb.deleteCharAt(sb.length() - 1);
used[i] = false;
}
}
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)