java操作字符串(在空格后的每个字符前面插入一个字母)
如果我有一个类似于java操作字符串(在空格后的每个字符前面插入一个字母),java,regex,string,Java,Regex,String,如果我有一个类似于string=“1 3 5 8 15”的字符串,并且我希望以这样的方式操作该字符串,即在每个非空格字符(始终是数字)前面插入一个字母,例如D,新字符串将变为string=“D1 D3 D5 D8 D15”。在我的特定代码中,初始字符串由用户输入(如果有任何关联),并且字符串字符始终是一位或两位数字。有很多方法可以做到这一点 String [] arr = str.split(" "); //split on white space String builder = ""; fo
string=“1 3 5 8 15”
的字符串,并且我希望以这样的方式操作该字符串,即在每个非空格字符(始终是数字)前面插入一个字母,例如D
,新字符串将变为string=“D1 D3 D5 D8 D15”
。在我的特定代码中,初始字符串由用户输入(如果有任何关联),并且字符串字符始终是一位或两位数字。有很多方法可以做到这一点
String [] arr = str.split(" "); //split on white space
String builder = "";
for(int i=0; i<arr.length; i++){
builder += "D" + arr[i];
if(i!=arr.length-1){
builder += " ";
}
}
String[]arr=str.split(“”)//在空白处拆分
字符串生成器=”;
对于(int i=0;i只需替换所有数字(\d+):
编辑:您还可以将数字大小限制为2,使用
\d{1,2}试试看:
str.replaceAll("^| ", "$0D");
\\d+是什么意思?第一个参数是替换零件右侧,第二个参数是替换为。@j.doe\d
表示“编号”,但我们必须在这里转义\
,因此\\d
。然后我们希望尽可能多地捕获这些,因此\\d+
\d匹配0到9之间的单个数字。+使其从1到无限次尽可能多地发生。javadocs for replaceall:“public String replaceall(String regex,String replacement)将此字符串中与给定正则表达式匹配的每个子字符串替换为给定的替换字符串。“请包含相关代码,并在此处查看如何提问。”
str.replaceAll("^| ", "$0D");