2016-04-15 138 views
0

我有一个关于比较两个字符串的问题?并检查它们是否相同。下面是问题explenation检查两个字符串?是相同的,如果他们返回true

// returns true if f.makeMolecular() is is equal to this.makeMolecular 
    // e.g. terms = {Term('B',3),Term('A',6)} and f = {Term('B',1),Term('A',3),Term('B',1),Term('A',3)} 
    // would return true 
    // The makeMolecular() method sorts the Term Strings into Alphabetical order with the number linked to the letter added and following behind the letter. 

EG无论是makeMolecular的应该返回“A6B3”

的字符串,我要检查,如果他们使用和是相同的IF语句,并采取==方法advatange在Java的。

下面列出了一个解决方案来检查字符串是否相同,但如上所述,我想用iff语句来做。

{ 

    this.makeMolecular(); 
    f.makeMolecular(); 
    return identical(f); 



} 

这是我到目前为止已经试过:

char b = f.makeMolecular(); 
char b = f.makeMolecular(); 

    if (a==b){ 
     return true; 
    } 
    else{ 
     return false; 
    } 

,我也得到了以下错误:不兼容的类型:无效,不能转换为char。我很确定在这里使用“char”不正确,但我不确定要使用什么。

所以我想知道如何将这些字符串(?)转换为常量,然后通过IF语句检查它们是否相同。

//编辑:

根据要求;这是makeMolecular()

public void makeMolecular() 
{ 
    char element = ' '; 
    int atoms = 0; 
    ArrayList<Term> mol = new ArrayList<Term>(); 

    while (terms.size() > 0){ 
     if (mol.size() > 0 && mol.get(mol.size() - 1).getElement() == nextElement().getElement() ){ 
      atoms = mol.get(mol.size() - 1).getAtoms() + nextElement().getAtoms(); 
      element = nextElement().getElement(); 
      mol.remove(mol.size() - 1); 
      mol.add(new Term(element,atoms)); 
     } 
     else { 
      mol.add(nextElement()); 
     } 
     terms.remove(nextElement()); 
    } 

    terms = mol; 
} 
+0

更新与makeMolecular()方法来cleare的事情了。 – joguel10

+0

'makeMolecular'是一个无效函数。它不能返回任何东西。 – computerfreaker

回答

0

的方法应该是

String a = f.makeMolecular(); 
String b = f.makeMolecular(); 

if(a.equals(b)) 
    return true; 
else 
    return false; 
+1

它应该是'return a.equals(b);'。或'Objects.equals(a,b)'如果'a'可能为空。 –

+0

感谢您的快速响应,但是当我尝试这个解决方案时,我得到以下错误:“不兼容的类型:无法转换为java.lang.String – joguel10

+0

什么是返回类型的makeMolecular()方法? – Amriteya

相关问题