2016-04-21 21 views
-1

@DavidMarciel现在代码应该检查某些条件为真后,将接收到的值存储在相应的变量中,但是当程序没有进入主体即使条件成立,if条件也是如此。我在这段代码中为“男性”变量设置了一个例子,并在if的主体内放置了一个print语句来显示它。以下是我的代码。分割字符串数组后,数组元素的条件始终为假

public class j { 
static String sss = "male,O+,45,saudi,brain_diseases"; 
static String male = ""; 
static String blood = ""; 
static String age = ""; 
static String nat = ""; 
static String dis = ""; 
static void func() { 
    String[] pieces = sss.split(","); 
    male = pieces[0]; 
    blood = pieces[1]; 
    age = pieces[2]; 
    nat = pieces[3]; 
    dis = pieces[4]; 

    System.out.println(male); 
    System.out.println(blood); 
    System.out.println(age); 
    System.out.println(nat); 
    System.out.println(dis); 
    // 
if(male=="male"){ 
System.out.println("hello male"); 
} 
} 

public static void main(String[] args) { 

    func();   
}} 
+0

问题主体中的'@ user'不会做任何事情。 – Savior

+0

这似乎是试图回答对另一个问题的答案,即“[分别指定变量中存储字符串数组](http://stackoverflow.com/questions/36747075/storing-array-of-strings-in - 指定变量-分别)”。 – dcsohl

回答

1

更换

if(male=="male"){ 

if (male.equals("male")) { 

操作==测试,以检查两个对象是相同的对象。在这种情况下,方法.equals检查字符串的内容。

+1

这里的适当操作是投票关闭作为众所周知的规范[如何比较Java中的字符串?]的副本(http://stackoverflow.com/questions/513832/how-do-i-compare-字符串在爪哇) – Savior

+0

当然,错误的答案是downvote正确的答案 –