在java中替换字符串的一部分

时间:2015-08-19 15:03:00

标签: java string text char

我正在尝试编写一个接受MONGO_URL="mongodb://localhost:27017/meteor" meteor

等字符串的函数

我想将3%替换为另一个数字(可以超过2位数),以便400%等。

我目前正在获取char(21),但这只是3的索引,所以如果我在那个地方有20%,那么我的代码将无效。

是否有其他方法可以替换存储%的位置。 (通过不知道当前%是什么数字也这样做)

5 个答案:

答案 0 :(得分:1)

您可以使用正则表达式执行此操作,例如:

String code = "<div> style=\"width: 3%\" </div>"
String replaced = code.replaceFirst("width: \\d+", "width: 400")

提取现有字符串中的值:

Pattern pattern =  Pattern.compile("width: (\\d+?)%");
Matcher matcher = pattern.matcher(code);
matcher.find()
matcher.group(1)//Gives 3

答案 1 :(得分:1)

最好的方法是使用HTML解析器。但是如果你的字符串总是很简单,那么你可以使用带有正则表达式的replaceAll

String code = "<div> style=\"width: 3%\" </div>";
String res = code.replaceAll(yourRegex, replacement);

我将为您提供完整的解决方案,但会给您一些提示:

  • Regex tutorial
  • String#replaceAll
  • \d+会匹配数字,因此width:\s+\d+将匹配“width”,后跟空格,然后是数字
  • 使用括号对正则表达式中捕获的结果进行分组,例如width:\s+(\d+)将捕获数字的结果(组)

答案 2 :(得分:0)

如果你的字符串是:

%

您可以找到存储int position = code.indexOf("%"); 的位置,如下所示:

String number = "2";

并且支持您将数字存储在字符串中:

2

注意:如果是22222String则无关紧要。

您可以使用substring函数获得总String totalString = code.substring(0,position - 1) + number + code.substring(position+1, code.length());

System.out.println(totalString);

现在你可以正常打印:

class

我希望它适合你!

答案 3 :(得分:0)

使用String#replaceFirst或String#replaceAll方法:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

    /* Do not show window again */
window.addEventListener('load', function() {

    if ($('#appnotice')) {

        var appnoticecloseElems = $$('.appnoticeclose'),
            appnoticecloseperm = $$('.appnoticecloseperm'),
            appnotice = $('#appnotice'),
            appnoticeHeight = appnotice.height(),
            appnoticePaddingTop = Math.abs(appnoticeHeight.toInt() - 5000),
            bypassappnotice = Cookie.read('bypassappnotice');

        appnotice.css('padding-top', appnoticePaddingTop);

        function appnoticeOpen() {
            console.log('appnoticeOpen');
            appnotice.css('display','block');
        }

        function appnoticeClose() {
            console.log('appnoticeClose');
            appnotice.css('display','none');
        }

        appnoticecloseElems.each(function(el, index) {
            $(el).click(function(){
                console.log('appnoticeclose');
                var bypassappnotice = Cookie.write('bypassappnotice', 'true');
                appnoticeClose();
            });
        });

        appnoticecloseperm.each(function(el, index) {
            el.click(function(){
                console.log('appnoticecloseperm');
                var bypassappnotice = Cookie.write('bypassappnotice', 'true', {
                    duration: 120
                });
                appnoticeClose();
            });
        });
    }

    if (bypassappnotice != 'true') {

        /* Detect Smartphone */
        var mobile = (/android/i.test(navigator.userAgent.toLowerCase()));
        if (mobile) {

            var userAgent = navigator.userAgent.toLowerCase();
            if ((userAgent.search("android") > -1) && (userAgent.search("mobile") > -1))

                var element = document.getElementById("apppage").style.display = "none";
            var element = document.getElementById("googlePlayBadge")
                .innerHTML = "<a href='https://play.google.com/store/apps/details?id=com.fiserv.touchbankingasp&hl=en' target='_blank'><img src='https://developer.android.com/images/brand/en_generic_rgb_wo_60.png'></a>";

        }

        var mobile = (/iphone/i.test(navigator.userAgent.toLowerCase()));
        if (mobile) {
            var userAgent = navigator.userAgent.toLowerCase();
            if ((userAgent.search("iphone") > -1) && (userAgent.search("mobile") > -1))

                var element = document.getElementById("apppage").style.display = "none";
            var element = document.getElementById("appStoreBadge")
                .innerHTML = "<a href='https://itunes.apple.com/us/app/touchbanking/id386678211?mt=8' target='_blank'><img src='http://linkmaker.itunes.apple.com/images/badges/en-us/badge_appstore-lrg.png'></a>";

        }
    }
});

/* Dismiss window ones */
function hideshow(which) {
    if (!document.getElementById)
        return
    if (which.style.display == "block")
        which.style.display = "none"
    else
        which.style.display = "block"
}
};

当然要根据您的要求调整正则表达式

答案 4 :(得分:0)

您可以使用Jsoup.

等HTML解析器