简体   繁体   English

如何在 Java 中的字符串之间添加空格?

[英]How to Add spaces between a string in Java?

I have a string like我有一个字符串

String str = "A1HighriseA22-5sty.Elev.A3Elevator(s)A4WalkupA5RowHouseA6DetachedA7Semi-DetachedA8TownHouse";

the requirement is I need to add space before and after A1, like wise i need to do it for all the A's listed in the string (like space before and after A2, A3, A4, A5, A6, A7, A8).要求是我需要在 A1 之前和之后添加空格,同样我需要为字符串中列出的所有 A 执行此操作(例如 A2、A3、A4、A5、A6、A7、A8 之前和之后的空格)。 I am not sure whether it is possible or not.我不确定这是否可能。 If yes, can you please help me on how to do that??如果是的话,你能帮我看看怎么做吗?

You may use String.replaceAll that accepts a regex, then just a capture group and add the spaces around您可以使用接受正则表达式的String.replaceAll ,然后只是一个捕获组并在周围添加空格

String str = "A1HighriseA22-5sty.Elev.A3Elevator(s)A4WalkupA5RowHouseA6DetachedA7Semi-DetachedA8TownHouse";
String result = str.replaceAll("(A\\d)", " $1 ");

//A1HighriseA22-5sty.Elev.A3Elevator(s)A4WalkupA5RowHouseA6DetachedA7Semi-DetachedA8TownHouse
// A1 Highrise A2 2-5sty.Elev. A3 Elevator(s) A4 Walkup A5 RowHouse A6 Detached A7 Semi-Detached A8 TownHouse

If you go to more than A9 , you the muldi-digit regex如果您 go 超过A9 ,则您是多位正则表达式

str.replaceAll("(A\\d+)", " $1 ");
    String str1 = "A1HighriseA22-5sty.Elev.A3Elevator(s)A4WalkupA5RowHouseA6DetachedA7Semi-DetachedA8TownHouse";
    String str=""; 
    for(int i=0;i<str1.length();i++){
        if(str1.charAt(i)=='A' && (str1.charAt(i+1)=='1' || str1.charAt(i+1)=='2' || str1.charAt(i+1)=='3' || 
        str1.charAt(i+1)=='4' || str1.charAt(i+1)=='5' || str1.charAt(i+1)=='6' || str1.charAt(i+1)=='7' ||
        str1.charAt(i+1)=='8' || str1.charAt(i+1)=='9')){
            str+= " "+str1.charAt(i)+""+str1.charAt(i+1)+" ";
            i++;
        }else{
            str+=""+str1.charAt(i);
        }
    }
    System.out.println(str);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM