2017-11-27 1 views
0

文字列内の各単語を区切り、スタックに追加しようとしています。ここに私がこれを行うために書いたコードです。テスターを実行するたびに、常に空のスタックが返されますが、スタックには<body>が含まれていませんか?文章のすべての単語をJavaの別の要素としてスタックに追加するにはどうすればよいですか?

import java.util.Stack; 

public class HTML3{ 
//main method 
public static boolean checkBalance(String str) { 
    Stack<String> stack = new Stack<String>(); 
    String[] words = str.split(" "); 
    for (int i = 0; i < words.length; i++) { 
     String tag = words[i]; 
     if(tag=="<body>" || tag=="<hl>" || tag=="<center>" || tag=="<p>" || tag=="<ol>" || tag=="<li>") {  
       stack.push(tag); 
     } 
    } 

    return stack.isEmpty(); 
} 

public static void main(String[]args) 
{ 
    checkBalance("<body> <li>"); 
    } 

}

+0

ループは、大文字と小文字の区別について気にしない場合には、 'for(String tag:words)' –

答えて

-1

あなたは近いですが、==文字列を比較しません、それはタグが例えば「> <体」とは異なる目的である場合には、オブジェクトを比較します。

.equals()を使用して文字列を比較すると、それが動作します。

tag.equals("<body>") 

コードヒントを提供するデバッガまたはIDEを使用する方法を学ぶ場合は、自分でこれらのことを理解することができます。

+0

またはequalsIgnoreCase()が良いと書かれています。 –

関連する問題