我有这个号码:getData(): Observable<any> {
return this.http.get(this.postURL).pipe(
map(data => data.map(d => (d.title = d.title +"Hey", d));
}),
);
}
我只想保留前4位和后3位:
4200000000000000
其他所有内容均应替换为点。如何使用一些智能算法来实现这一点?
答案 0 :(得分:1)
为什么不使用StringBuilder
和substring
方法:
public static String foo(long num) {
String numToString = String.valueOf(num);
return new StringBuilder()
.append(numToString.substring(0 , 4))
.append("....")
.append(numToString.substring(numToString.length()-3, numToString.length()))
.toString();
}
输入4200000000000000
时,它输出:
4200....000
或者输入的内容已经是String
:
public static String foo(String str) {
return new StringBuilder()
.append(str.substring(0 , 4))
.append("....")
.append(str.substring(str.length()-3, str.length()))
.toString();
}
答案 1 :(得分:0)
将您的电话号码解析为字符串,然后尝试以下操作:
var app = new Vue({
el: '#app',
data: {
error: false,
classArray: {
btn: true,
'btn-success': this.error
}
},
methods: {
toggle: function() {
this.error = !this.error;
console.log(document.getElementById('input1'));
}
}
});
答案 2 :(得分:0)
您可以使用类似的东西
int last = 3;
int first = 4;
String number = '4200000000000000';
String start = number.substring(0,first-1);
String end = number.substring(number.length()-last,number.length()-1);
String dots = '';
for(int i = 0; i<number.length()-last-first;i++){
dots = dots + '.';
}
String result = start + dots + end;
答案 3 :(得分:0)
您可以将其转换为char数组,对其进行更改,然后将其转换回字符串
char[] charArray = originalNumber.toCharArray();
for (int i; i < charArray.length; i++) {
if (i <= 4 || i >= charArray.length - 3) {
charArray[i] = ".";
}
}
String outputString = new String(charArray);
答案 4 :(得分:0)
这将用'。'替换从第4个字符到最后第4个字符的所有字符:
String start = "4200000000000000";
System.out.println(start);
String target = start;
if (start.length() > 7) {
target = new StringBuilder()
.append(start.substring(0, 4))
.append(new String(new char[start.length() - 7]).replaceAll(".", "."))
.append(start.substring(start.length() - 3))
.toString();
}
System.out.println(target);
将打印
4200000000000000
4200.........000
答案 5 :(得分:0)
使用String类的子字符串方法:
String str = "4200000000000000";
String res = str.substring(0,4)+ str.substring(4,str.length()-3).replaceAll(".", ".") + str.substring(str.length()-3);
如果使用的是Apache commons库,则可以使用repeat方法创建指定长度的屏蔽字符串,并使用StringUtils类的overlay方法覆盖String的一部分:
String str = "4200000000000000";
String mask= StringUtils.repeat('.', str.length()-7);
String res = StringUtils.overlay(str, mask, 4, str.length()-3);