日期:2014-05-20  浏览次数:20692 次

请教如何实现字符串连接非静态变量。
对于两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
原来的想法是,做四个字符串,其中前面三个为条件字符串,第四个为动态生成的字符串。通过第四个字符串和前面三个字符串的对比,得出最终结果。执行上述代码,提示无法从静态上下文中引用非静态变量str4。
请教下,如果一个字符串要连接非静态变量,应如何操作。
public class Exer18
{
static char[] m = {'a','b','c'};
static char[] n = {'x','y','z'};
String str1 = "a VS x";
String str2 = "c VS x";
String str3 = "c VS z";
        String str4;
public static void main(String[] args)
{
for (int i = 0; i < m.length; i++)
{
for (int j = 0; j < n.length; j++)
{
str4 = m[i] + " VS " + n[j];
if (str1 == str4 || str2 == str4 || str3 == str4)
{
continue;
}
else
System.out.println(str4);
}
}
}
}

执行上述代码,提示无法从静态上下文中引用非静态变量str4。

------解决方案--------------------
你的那4个字符串都必须是静态变量,加static就ok了
------解决方案--------------------
1.将字符串声明成静态变量
2.使用局部变量,将变量在main里面声明
3.用对象访问自己的成员变量。
------解决方案--------------------
LZ应该用
if (str1.equals(str4) 
------解决方案--------------------
 str2.equals(str4) 
------解决方案--------------------
 str3.equals(str4))

来进行比较
------解决方案--------------------
引用:
你的那4个字符串都必须是静态变量,加static就ok了
+1
------解决方案--------------------
静态方法不能访问非静态成员变量
------解决方案--------------------
如果一个字符串要连接非静态变量

like this:

public class Exer18
{
    static char[] m = {'a','b','c'};
    static char[] n = {'x','y','z'};
    public static void main(String[] args)
    {
     String str1 = "a VS x";
        String str2 = "c VS x";
        String str3 = "c VS z";
        String str4;
        for (int i = 0; i < m.length; i++)
        {
            for (int j = 0; j < n.length; j++)
            {
                str4 = m[i] + " VS " + n[j];
                if (str1 == str4 
------解决方案--------------------