java分裂字符串函数

时间:2012-05-11 10:10:43

标签: java string split

我正在尝试构建一个程序,在使用Split函数

后读取某个String
import java.util.Scanner;

   public class Lexa2 {

public void doit() {
    String str = "( 5 + 4 ) * 2";
    String [] temp = null;
    temp = str.split(" "); 
    dump(temp);
}
public void dump(String []s) {
    for (int i = 0 ; i < s.length ; i++) {           
        if (s[i] == "(") {              
            System.out.println("This is the left paren");
        } else if (s[i] == ")"){                
            System.out.println("This is the right paren");          
        }else  if (s[i] == "+"){                
            System.out.println("This is the add");          
        }else  if (s[i] == "-"){                
            System.out.println("This is the sub");          
        }else  if (s[i] == "*"){                
            System.out.println("This is the mult");         
        }else  if (s[i] == "/"){                
            System.out.println("This is the div");          
        }else               
            System.out.println("This is a number");
    }
}   

     public static void main(String args[]) throws Exception{
       Lexa2 ss = new Lexa2();
         ss.doit();
 }
    }

输出应该是这样的:

This is the left paren
this is a number
this is the add
this is the right paren
this is a number

2 个答案:

答案 0 :(得分:4)

你非常接近,只需用(s[i] == "?")

替换(s[i].equals("?"))

答案 1 :(得分:1)

请勿使用s[i] == ")"来比较字符串。这样,您就不会检查s[i]中的字符串是否等于)

使用equals方法。然后你可以使用以下方法比较字符串:

if (s[i].equals("("))

替换其他equals语句中的if

<强>更新

P.S。我认为比较字符串,查看代码的最佳方法是使用switch/case语句。但是,此功能是only available in Java 7。我认为这将避免使用if语句进行连续检查,并且代码将更具可读性。如果您使用的是Java 7,请使用此功能,否则,如果是Java 6或更低版本,请遵循@pstanton建议。 ; - )