java中如何将 string="123";转换为 string="313233"
最近遇到一个java的string算法问题具体要求是:将string中的数字都加上30,然后重新组合
比如说
string str_old="123"; 转换后为
string str_new="313233";
我对java不太熟悉,请问应当如何实现?
另外因为我是做C语言的,能否有函数可以将string转换为char数组,处理后,在转换为string类型.
--------------------编程问答-------------------- String str_old="123";
StringBuilder sb = new StringBuilder();
for (char c: str_old.toCharArray()){ //String#toCharArray()就是将String转为char[]的方法
sb.append("3");
sb.append(c);
}
System.out.println(sb.toString());
--------------------编程问答-------------------- 下面是一个用String类构建器将char[]转为String对象的例子:
new String(new char[]{'b','b','k'}) --------------------编程问答--------------------
目的达到,可以修改下,更加通用
String str_old="123";--------------------编程问答-------------------- String rtStr = bytesToHexString(str_old.getBytes());
int i=30;
StringBuilder sb = new StringBuilder();
for (char c: str_old.toCharArray()){ //String#toCharArray()就是将String转为char[]的方法
sb.append(i+Integer.valueOf(String.valueOf(c)));
}
System.out.println(sb.toString());
public final String bytesToHexString(byte[] bArray) {
StringBuffer sb = new StringBuffer(bArray.length);
String sTemp;
for (int i = 0; i < bArray.length; i++) {
sTemp = Integer.toHexString(0xFF & bArray[i]);
if (sTemp.length() < 2)
sb.append(0);
sb.append(sTemp.toUpperCase());
}
return sb.toString();
} --------------------编程问答-------------------- 这个是正解。
--------------------编程问答--------------------
--------------------编程问答--------------------
String str = "123";//原始的数据
int index = 30;//需要要增加的值
StringBuffer buf = new StringBuffer();
for (char c : str.toCharArray()) {
buf.append(Integer.parseInt(c + "") + index);
}
System.out.println(buf);
gbvfbhg--------------------编程问答-------------------- 就楼主要求,1楼足已 --------------------编程问答--------------------
--------------------编程问答--------------------
public class Test {
public static void main(String[] args) {
String s1 = "1234567890";
String s2 = "";
for (int i = 0; i < s1.length(); i++) {
s2 += s1.charAt(i) - 48 + 30;
}
System.out.println(s2);
}
}
结果 31323334353637383930
哎哟 还是我来完善一下要解决是吧 调一下这个搞定
public static StringBuilder change(ring str_old,int i){
StringBuilder sb = new StringBuilder();
for (char c: str_old.toCharArray()){
//String#toCharArray()就是将String转为char[]的方法
sb.append(i+Integer.valueOf(String.valueOf(c))); }
return sb;
}
}
--------------------编程问答-------------------- 看得出一楼的对数据对算法的功底,膜拜 --------------------编程问答--------------------
此问题一句足矣
System.out.println("1234".replaceAll("(?=\\d)", "3"));
补充:Java , J2ME