2016-04-06 3 views
0

これは、数式を分割するためのコードです。たとえば、数式は「CH3O2」です。私は用語( 'C'、1)、用語( 'H'、3)、用語( 'O'、2)を得るように分割する必要があります。後でこれらはArrayListに格納されます。スリフト数式文字列

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

質問がありますか?あるいはコードをランダムに投稿していますか? –

+0

「NaCl」はどうですか? 1つの例を挙げるだけで問題の完全な解決策を期待することはできません。 –

答えて

1

あなたの声明/質問は完全に明確ではありませんでした。あなたの入力にそれにカンマがないと仮定すると(あなたの例 "CH3O2"のように)、それはString.splitで分割されません。次の例は、あなたの謎を解消します。

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

ありがとうございます。それは理にかなっている。 – Techgrl

+0

これがあなたの質問に答えるなら、それを答えとして受け入れてください、ありがとう! – JynXXedRabbitFoot