你如何在这段代码中使用for循环?

时间:2014-05-01 06:49:51

标签: string loops for-loop binary

def binary_string(s):     

编写一个带字符串的函数,将其转换为二进制字符串
     元音被0代替,辅音被1代替      该函数应返回二进制字符串。

  
    
      

binary_string(#34&;卡伦&#34)
           ' 10101'
      binary_string(" Hello World!")
           ' 10110 10111!'

    
  
if __name__ == '__main__':     
import doctest     
doctest.testmod(verbose = True) 

2 个答案:

答案 0 :(得分:0)

尝试这样的事情。假设您的字符串变量的名称是“stringVar”。

string binaryString="";
for(int i=0;i<stringVar.Length();i++)
{
    if(stringVar == 'a' || stringVar == 'A' || stringVar == 'e') //and so on
    {
        binaryString[i] = '0';
    }
    else
    {
        binaryString[i] = '1';
    }
}//end for loop.
print(binaryString);

这应该可以为您提供所需的结果。这是基本功能。其余的取决于您编写的语言。

希望这有帮助。

答案 1 :(得分:0)

由于你没有指定你想要解决方案的语言,所以我假设它是java(来自我的身边)。虽然,算法对所有语言都有效。 的

public class SO {
    public static void main(String[] args) {
        String s = "Karen";
        char[] arr = s.toCharArray();
        StringBuilder binary = new StringBuilder();
        for (char c : arr) {

            if(Character.isAlphabetic(c)){
                if (isVowel(c)) {
                    binary.append("0");
                }else{
                    binary.append("1");
                }
            }else{
                binary.append(c);
            }
        }
        System.out.println(binary);
    }

    private static boolean isVowel(char c) {
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' || c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U') {
            return true;
        }
        return false;
    }
}

<强>输出

When input is 
String s = "Karen";
then output is
binary = 10101

When input is 
String s = "Hello World!";
then output is
binary = 10110 10111!