当前位置:编程学习 > JAVA >>

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'}) --------------------编程问答--------------------
引用 1 楼 magong 的回复:
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(s……

目的达到,可以修改下,更加通用
		String str_old="123";
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());
--------------------编程问答--------------------  String rtStr = bytesToHexString(str_old.getBytes());

  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();
         } --------------------编程问答-------------------- 这个是正解。

引用 1 楼  的回复:
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(s……
--------------------编程问答--------------------

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

--------------------编程问答--------------------
引用 3 楼 hanjiaming 的回复:
引用 1 楼 magong 的回复:
String str_old="123";
StringBuilder sb = new StringBuilder();
for (char c: str_old.toCharArray()){ //String#toCharArray()就是将String转为char[]的方法
sb.append("3");
sb.append(c);
}
……



哎哟 还是我来完善一下要解决是吧 调一下这个搞定 
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;
}
}


--------------------编程问答-------------------- 看得出一楼的对数据对算法的功底,膜拜 --------------------编程问答--------------------
引用 楼主 zyhorse2010 的回复:
最近遇到一个java的string算法问题
具体要求是:将string中的数字都加上30,然后重新组合
比如说
string str_old="123"; 转换后为
string str_new="313233";

我对java不太熟悉,请问应当如何实现?

另外因为我是做C语言的,能否有函数可以将string转换为char数组,处理后,在转换为string类型.


此问题一句足矣

System.out.println("1234".replaceAll("(?=\\d)", "3"));
补充:Java ,  J2ME
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,