黑马程序员技术交流社区
标题:
关于System.arraycopy的问题(完成)
[打印本页]
作者:
王琪
时间:
2014-2-28 13:23
标题:
关于System.arraycopy的问题(完成)
本帖最后由 王琪 于 2014-3-1 15:04 编辑
import java.util.*;
public class Text2 {
static void fun(char[] s){
char []b="AAA".toCharArray();
System.arraycopy(s, 0,b ,0, 2);
s="BBB".toCharArray();
}
public static void main(String[]args){
char []s="QQQ".toCharArray();
fun(s);
System.out.println(new String(s));
}
}
复制代码
结果为什么是
[
code]QQQ[/code]
import java.util.*;
public class Text2 {
static void fun(char[] s){
char []b="AAA".toCharArray();
System.arraycopy(s, 0,b ,0, 2);
s[0]='3';
}
public static void main(String[]args){
char []s="QQQ".toCharArray();
fun(s);
System.out.println(new String(s));
}
}
复制代码
结果却是
3QQ
复制代码
到底怎么通过函数把字符串改变啊?真要一个一个通过索引改变?
import java.util.*;
public class Text2 {
static void fun(String s){
s="AAAjhdskjhakjdfhkashkj...";
}
public static void main(String[]args){
String s="";
fun(s);
System.out.println(new String(s));
}
}
复制代码
作者:
kira
时间:
2014-2-28 13:28
第一个问题因为这句话
char []s="QQQ".toCharArray();
fun(s);
复制代码
第二个问题 因为这句话
s[0]='3'; //定义首角标
复制代码
第三个问题 可以用正则 replaceAll方法 会简单很多
作者:
王琪
时间:
2014-2-28 22:21
谢谢你 我做出来了 用集合
import java.util.*;
public class text {
static ArrayList<Character> ary=new ArrayList();
static ArrayList<Character> abit = new ArrayList();
public static void main(String[]args){
//
char[] bit ="0123456789ABCDEF".toCharArray();
Tianjia(abit,bit);
Tianjia(ary,"".toCharArray());System.out.println(ary.size());
int old,base;
Scanner in=new Scanner(System.in);
System.out.println("输入十进制数:");
old=new Integer(in.next().trim());
System.out.println("要转换的制数:");
base=new Integer(in.next().trim());
fun(ary,old,base);
System.out.println(ary);
}
static void fun(ArrayList <Character>ary ,int n,int b){
int len;
if (n==0){
copy(ary,0 ," ",0 );
return ;
}
fun(ary,n/b,b);
len=ary.size();
ary.add(abit.get(n%b));
}
static void Tianjia(ArrayList<Character> J,char a[]){
for(char c:a){
J.add(c);
}
System.out.println(J);
}
static void copy(ArrayList a,int begin1,String s,int begin2){
char ch[]=new String (s.toCharArray(),begin2,s.length()-1).toCharArray();
for(int i:ch){
a.set(i,ch[i]);
}
}
}
复制代码
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F]
[]
0
输入十进制数:
121
要转换的制数:
2
复[]
[1, 1, 1, 1, 0, 0, 1]
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2