早教吧作业答案频道 -->其他-->
java对字符操作/23b2f4转换/333bbbbb/UL/UL/ULf41,若已知字符串的当前字符不是大于0的数字字符,则复制该字符于新字符串中。2,若已知字符串的当前字符是一数字字符,且它之后没有
题目详情
java 对字符操作
/23b_2__f4转换/_333_bbbb_b_/UL____/UL_/UL_f_4
1,若已知字符串的当前字符不是大于0的数字字符,则复制该字符于新字符串中。
2,若已知字符串的当前字符是一数字字符,且它之后没有后继字符,则简单地将它复制到新字符串中。
3,若已知字符串的当前字符是一个大于0的数字字符,并且还有后继字符,设该数字字符的面值为n,则将它的后继字符(包括数字字符)重复复制n+1次到新字符串中。
4,以上一次变换为一组,在不同组之间插入一个下划线‘_’用于分隔。
5,若已知字符串中包括有下划线‘_’,则变换为用“/UL”。
用encode()和decode()两个函数实现分别实现对字符串变换和复原
例如 encode()对字符串24ab_2t2的变换结果为444_aaaaa_a_b_/UL_ttt_t_2
复原函数decode()做变换函数encode()的相反工作,按照上述规则逆运算,变回原来的字符串。滤掉!多余的下划线字符。
/23b_2__f4转换/_333_bbbb_b_/UL____/UL_/UL_f_4
1,若已知字符串的当前字符不是大于0的数字字符,则复制该字符于新字符串中。
2,若已知字符串的当前字符是一数字字符,且它之后没有后继字符,则简单地将它复制到新字符串中。
3,若已知字符串的当前字符是一个大于0的数字字符,并且还有后继字符,设该数字字符的面值为n,则将它的后继字符(包括数字字符)重复复制n+1次到新字符串中。
4,以上一次变换为一组,在不同组之间插入一个下划线‘_’用于分隔。
5,若已知字符串中包括有下划线‘_’,则变换为用“/UL”。
用encode()和decode()两个函数实现分别实现对字符串变换和复原
例如 encode()对字符串24ab_2t2的变换结果为444_aaaaa_a_b_/UL_ttt_t_2
复原函数decode()做变换函数encode()的相反工作,按照上述规则逆运算,变回原来的字符串。滤掉!多余的下划线字符。
▼优质解答
答案和解析
public static String encode(String str) {
StringBuffer buff = new StringBuffer();
char[] arr = str.toCharArray();
for (int i = 0; i < arr.length; i++) {
if (i != 0)
buff.append("_");
if (arr[i] > 48 && arr[i] <= 57) {
if (i < arr.length - 1) {
for (int j = 0; j <= Integer.parseInt(String
.valueOf(arr[i])); j++) {
buff.append(arr[i + 1]);
}
} else {
buff.append(arr[i]);
}
} else {
if (arr[i] == 95) {
buff.append("/UL");
} else {
buff.append(arr[i]);
}
}
}
return buff.toString();
}
public static String decode(String str) {
StringBuffer buff = new StringBuffer();
String[] arr = str.split("_");
int spaceCnt = 0;
for (int i = 0; i < arr.length; i++) {
if ("".equals(arr[i])) {
spaceCnt++;
} else {
buff.append(spaceCnt > 1 ? spaceCnt - 1 : "");
spaceCnt = 0;
if ("/UL".equals(arr[i])) {
buff.append("_");
} else if (arr[i].length() > 1) {
buff.append(arr[i].length() - 1);
} else {
buff.append(arr[i]);
}
}
}
return buff.toString();
}
未充分测试,你拿去用用看吧!
StringBuffer buff = new StringBuffer();
char[] arr = str.toCharArray();
for (int i = 0; i < arr.length; i++) {
if (i != 0)
buff.append("_");
if (arr[i] > 48 && arr[i] <= 57) {
if (i < arr.length - 1) {
for (int j = 0; j <= Integer.parseInt(String
.valueOf(arr[i])); j++) {
buff.append(arr[i + 1]);
}
} else {
buff.append(arr[i]);
}
} else {
if (arr[i] == 95) {
buff.append("/UL");
} else {
buff.append(arr[i]);
}
}
}
return buff.toString();
}
public static String decode(String str) {
StringBuffer buff = new StringBuffer();
String[] arr = str.split("_");
int spaceCnt = 0;
for (int i = 0; i < arr.length; i++) {
if ("".equals(arr[i])) {
spaceCnt++;
} else {
buff.append(spaceCnt > 1 ? spaceCnt - 1 : "");
spaceCnt = 0;
if ("/UL".equals(arr[i])) {
buff.append("_");
} else if (arr[i].length() > 1) {
buff.append(arr[i].length() - 1);
} else {
buff.append(arr[i]);
}
}
}
return buff.toString();
}
未充分测试,你拿去用用看吧!
看了 java对字符操作/23b2...的网友还看了以下:
如果F'(x)=0,那么在区间(a,b)内每一点都是等于0的吗?比如说F'(a)=0?F'(v)= 2020-06-07 …
映射题,求正解.首先我读不懂题(f(n)∈R,v∈R,u∈R)求所有的f:R→R满足:(1)f(2 2020-06-07 …
关于带电粒子所受洛仑兹力f、磁感应强度B和粒子速度v三者之间的关系,下列说法中正确的是[]A、f、 2020-07-02 …
关于带电粒子所受洛伦兹力F、磁感应强度B和粒子速度v三者方向之间的关系,下列说法正确的是()A.F 2020-07-13 …
函数的运算:已知函数f(x)的定义域为R,对任意实数u,v满足f(u+v)=f(u)+f(v),且 2020-07-27 …
探求凸多面体的面F、顶点数V和棱数E之间的关系得到的结论是()A.无确定关系B.F+E-V=2C. 2020-07-29 …
设V是全体平面向量构成的集合,若映射f:V→R满足:对任意向量a=(x1,y1)∈V,b=(x2, 2020-07-30 …
欧拉公式中,多面体的面数F,棱数E,顶点数V之间的正确关系是()A.F+V-E=2B.F+E-V=2 2020-11-18 …
为什么机车达到最大速度时a=0,F=f根据P=FV,当P为恒定功率时V和F成反比,那么V不是可以无限 2020-11-24 …
频率一定的声源在空气中向着静止的接收器匀速运动.以u表示声源的速度,v表示声波的速度(u<v),f表 2020-12-15 …