java - 如何从java中的字符串中删除每12个字符
问题描述
假设我有一个这样的字符串:
String str = "~asdfl;kjx,~rgadfaeg,dsafnewgfljka;ldfjsfa;dlkjfa;lvjvbnaber;fwelfjadfafa"
int character = 12
我想要做的是删除字符串中的每 12 个字符,所以我会删除第 12 个索引,然后是第 24 个,然后是第 36 个,等等,直到字符串结束。
我删除的索引(每 12 次或每 2 次)必须等于我拥有的字符变量,因为该变量会发生变化。
我试着用正则表达式来做这个:
System.out.println(s.replaceAll(".(.)", "$12"));
但它没有用。有什么帮助吗?
解决方案
有时,您只需要一个简单的for
循环:
public class Test {
public static void main(String[] args) {
String str = "~asdfl;kjx,~rgadfaeg,dsafnewgfljka;ldfjsfa;dlkjfa;lvjvbnaber;fwelfjadfafa";
int character = 12;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
if ((i + 1) % character != 0) {
sb.append(str.charAt(i));
}
}
String result = sb.toString();
System.out.println(result);
}
}
如果您坚持使用正则表达式,您可以将character
变量插入到表达式中,如下所示:
public class Test {
public static void main(String[] args) {
String str = "~asdfl;kjx,~rgadfaeg,dsafnewgfljka;ldfjsfa;dlkjfa;lvjvbnaber;fwelfjadfafa";
int character = 12;
System.out.println(str.replaceAll("(.{" + (character - 1) + "}).", "$1"));
}
}
推荐阅读
- python - 在 Python 中继承记录器名称
- javascript - Jest Snapshots 在 SVG 道具上失败
- random - 从 Google 表格列表中选择随机单元格的简单方法
- python - Tkinter 单选按钮控制是否为真
- tfs - 将代码从 TFS 2010 上的 TFVC 移动到 Azure DevOps 服务器上的 TFVC
- python - 有效地合并两个迭代器
- html - 图像在 img 标签中旋转
- python - 使用 np.where 创建具有三个条件的新列
- swift - SwiftUI - 日期选择器未正确显示
- gnuplot - 用 gnuplot 绘制表面,但我只有一个 Z 数据数据文件