2016-04-06 11 views
0

Bu, formülü "CH3O2" olduğu için bir formülü ayırmak için kodumun kodudur. Bölmek zorundayım, böylece terim ('C', 1), terim ('H', 3), '(' O ', 2)' dir. Daha sonra bunlar ArrayList'te saklanırdı.Slipt Formül Dize

for(int i=0; i<s.length();i++){ 
      if(Character.isUpperCase(s.charAt(i))) 
      { 
      String [] st = s.split(","); 
      System.out.println(st); 
      } 
      } 
+2

Bir soru var mı? Yoksa sadece rastgele kod gönderiyor musunuz? –

+0

Peki ya NaCl'? Sadece bir örnek veremezsiniz ve probleminiz için eksiksiz bir çözüm beklemezsiniz. –

cevap

1

Bildiriniz/sorunuz tamamen açık değildi. Girişinizin içinde virgül olmadığını varsayarak (örneğin "CH3O2" örneğinde olduğu gibi) String.split ile bölünmeyecektir. Aşağıdaki örnek, sizin bilmecenin niyetini ele alır.

public class StackOverflow 
{ 
    private static final String testString = "CH3O2"; 

    public static void main(String[] args) 
    { 
    List<String> terms = new ArrayList<String>(); 
    for (int i = 0; i < testString.length(); i++) 
    { 
     if (Character.isUpperCase(testString.charAt(i))) 
     { 
     if (i + 1 < testString.length() 
      && Character.isDigit(testString.charAt(i + 1))) 
     { 
      terms.add(testString.charAt(i) + "," + testString.charAt(i + 1)); 
      i++; 
      continue; 
     } 
     terms.add(testString.charAt(i) + ",1"); 
     } 
    } 
    for (String s : terms) 
    { 
     System.out.println(s); 
    } 
    } 
} 
+0

Teşekkür ederiz. Bu mantıklı. – Techgrl

+0

Eğer bu soruya cevap verirse, lütfen cevap olarak kabul et, Teşekkürler! – JynXXedRabbitFoot

İlgili konular