2016-04-11 34 views
0

Sınıf terimlerinin iki bileşenini bir araya nasıl katılacağınıza ve bir dizedeki (integer.parseInt bileşenlerini) nasıl tanımlayacağına ve çevirebileceğimize dair yardım alabilir miyim? iki bileşen "element" ve "atom" dır.Dizgenin iki bileşenini birleştiren ve bileşenleri belirleme

Örneğin H20'den H ve 20'ye kadar, H öğesini öğeyi ve 20 sayısını atom olarak belirten terimleri ayırmam gerekir. "TODO" parçaları kodumun olması gereken yerde, ilk "TODO" iki bileşene katılmalı ve ikinci "TODO" dizgede bileşenleri tanımlamalı ve çevirmelidir.

Bunu BlueJ'de kodluyorum ve kodlamada bir başlangıç ​​yapıyorum, char ve int'yi ayrıştırma ve birleştirme konusunda fazla bilgi sahibi değilim. Bu bilgisayar bilimi projesi için kullanılan tüm kimyasal formül CH3CH2CH2CH2CH2CH3, bunlar ilk sorular.

Henüz bir uygulamaya sahip değilim, çünkü TODO bölümlerindeki kodu nasıl başlayacağımı bilmiyorum.

public class Term 
{ 
private char element; 
private int atoms; 
// creates a Term with the provided values 
public Term(char element, int atoms) 
{ 
this.element = element;   
this.atoms = atoms; 
} 
// creates a Term by parsing s  
// e.g. "H20" would give element = 'H', atoms = 20 

public Term(String s) 
{ 
// TODO 
}   
// turns the Term into a String  
// e.g. element = 'C', atoms = 4 would give "C4" 
public String display() 
{   
// TODO   
return ""; 
}   
// returns the current value of element 
    public char getElement() 
{ 
return element; 
} 
// returns the current value of atoms 
public int getAtoms() 
{   return atoms; 
} 
} 
+0

'String.valueOf (int)'? –

+0

Ne yapmak istediğiniz belli değil, geçen formül daha küçük olanlar N olacak mı yoksa büyük olanı mı ve kırmalı mı? Ayrıca, şu ana kadarki implentasyonunuzu da göstererek, gönderdiğiniz kodun öğretmen tarafından verilen bir snippet olduğu açık. – dambros

+0

lütfen bunu genişletebilir misiniz? – thatguy123

cevap

0

genel sınıf Süresi { özel karakter elemanı;

private int atoms; 

// creates a Term with the provided values 
public Term(char element, int atoms) { 
    this.element = element; 
    this.atoms = atoms; 
} 

// creates a Term by parsing s  
// e.g. "H20" would give element = 'H', atoms = 20 

public Term(String s) { 
    // TODO 
    String e=""; 
    String at="";   
    char ch[]=s.toCharArray(); 

    for(int i=0;i<s.length();i++){ 

     if(ch[i]>=(char)65 && ch[i]<=(char)90 || ch[i]>=(char)97 && ch[i]<=(char)122){ 
      e=e+ch[i]; 
     } 
     else{ 
      at=at+ch[i]; 
     } 
    } 
    System.out.println("element = '"+e+"'\t atom = "+at); 
} 

// turns the Term into a String  
// e.g. element = 'C', atoms = 4 would give "C4" 
public String display() { 
    // TODO 
    String trm=""+getElement()+getAtoms(); 
    return trm; 
} 

// returns the current value of element 
public char getElement() { 
    return element; 
} 

// returns the current value of atoms 
public int getAtoms() { 
    return atoms; 
} 

}

+0

Lütfen çözümünüzü cevabınızda açıklayın! – gaRos

+0

girişiniz için teşekkür ederiz, ancak (int (int = i = 0; i = (char) 65 && ch [i ] <= (char) 90 || ch [i]> = (char) 97 && ch [i] <= (char) 122) { e = e + ch [i]; " – thatguy123

+0

bu, alfabenin olup olmadığını belirlemek içindir. A-z [97 ila 122] ve A-Z için ASCII kodları [65 ila 90] – Dev