package txx;
public class Tr {
static void func(int a, String b, String c) {
a = 1;
b.trim();
c = b;
}
public static void main(String[] args) {
int a = 0;
String b = " Hello World ";
String c = " OK ";
func(a, b, c);
System.out.println("" + a + "," + b + "," + c);
}
}
trim函数不是去掉字符两端和多余的空格吗?这个怎么没起作用,为什么输出的结果还是0, Hello World , OK
我虽然是新人,但是我喜欢编程,我有上进心,求解释,求进步。 作者: 薄炳鑫 时间: 2012-6-21 18:03
你这修改的是你的传进去的参数,但是你打印的还是原来的。作者: 邓杰 时间: 2012-6-21 18:13
我觉得你还是把你到底想干嘛说的清楚一点。否则不好办啊。这个程序太多的不可理解之处;作者: 邓杰 时间: 2012-6-21 18:18
如果你是想把a b c的值全部打印,并且去掉两头的空格呢;我这样写的、
class Tr {
static String func(int a, String b, String c) {
a = 1;
b=b.trim();
c = b;
System.out.println(b);
return new String(a+b.trim()+c) ;
}
public static void main(String[] args) {
int a = 0;
String b = " Hello World ";
String c = " OK ";
String str=func(a, b, c);
System.out.println(str);
}
} 作者: 常佳杰 时间: 2012-6-21 18:25
package txx;
public class Tr {
static void func(int a, String b, String c) {
a = 1;
b.trim(); //这个是正确的(验证代码:
String b1 = b.trim();
System.out.println(b1);
输出的是Hello World)
c = b;
}
public static void main(String[] args) {
int a = 0;
String b = " Hello World ";
String c = " OK ";
func(a, b, c);
System.out.println("" + a + "," + b + "," + c);
}
}
原因是:
在程序入口你是调用了func()方法。但你是在主函数里输出的,肯定还是初始化的值了懂吗?
注意:你传进去的参数要在方法里用...
还有你在func里的 b.trim();并没有给b赋值...
b肯定还是初始化的值了..
你应该用b来接受b.trim();
class Tr{
static void func(int a, String b, String c) {
a = 1;
b=b.trim();
c = b;
System.out.println("" + a + "," + b + "," + c);
}
}这样输出的结果就是
1,Hello World,Hello World 作者: 严明 时间: 2012-6-21 18:57 本帖最后由 严明 于 2012-6-21 18:58 编辑
java是面向对象的,怎么各位大侠的答案还有一点面向过程的影子,以下代码仅供参考,测试通过:
public class Tr
{
static int a;
static String b;
static String c;
class Func
{
public int a;
private String b;
private String c;
public Func(int a,String b,String c)
{
a = 1;
b.trim();
c = b;
System.out.println(a+ ","+b+ ","+c);
}
}
public class Tr
{
public static void main(String[] args)
{
Func f = new Func(0," Hello World "," OK ");
}
}
打印结果:1, Hello World , Hello World 作者: 孙浩迪 时间: 2012-6-21 19:23
package txx;
public class Tr {
static void func(int a, String b, String c) {
a = 1;
b.trim();
c = b;
}
public static void main(String[] args) {
int a = 0;
String b = " Hello World ";
String c = " OK ";
func(a, b, c);
System.out.println("" + a + "," + b + "," + c); // 你打印的还是 a = 0; b=" hello World " c =" OK " 明白吗?
// 你虽然做了修改了,可是你光调用那个方法了, 你并没有打印那个方法,
//调用打印那个方法是这样的System.out.println(func(a,b,c)); 明白?
}
}