我正在尝试编写一个接受MONGO_URL="mongodb://localhost:27017/meteor" meteor
我想将3%替换为另一个数字(可以超过2位数),以便400%等。
我目前正在获取char(21),但这只是3的索引,所以如果我在那个地方有20%,那么我的代码将无效。
是否有其他方法可以替换存储%的位置。 (通过不知道当前%是什么数字也这样做)
答案 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);
我将为您提供完整的解决方案,但会给您一些提示:
String#replaceAll
\d+
会匹配数字,因此width:\s+\d+
将匹配“width”,后跟空格,然后是数字width:\s+(\d+)
将捕获数字的结果(组)答案 2 :(得分:0)
如果你的字符串是:
%
您可以找到存储int position = code.indexOf("%");
的位置,如下所示:
String number = "2";
并且支持您将数字存储在字符串中:
2
注意:如果是22
或222
或String
则无关紧要。
您可以使用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解析器