如何读取字符串中的某个符号

时间:2017-11-01 18:56:51

标签: php

我试图将2个符号与字符串分开然后 计算这些符号中有多少。

所以,如果我有:1110001110000

然后应该发现有6 = 1和7 = 0

所以这就是我的尝试: 基本上我需要的是读取代码中的字符串索引string[$i]然后IF10计算它。

我尝试使用for - 循环

for ($i=0; $i < $getInput[$i] ; $i++) { 
    if ($getInput[$i] == 1) {
        echo "ONE";
    } elseif ($getInput[$i] == 0) {
        echo "ZERO";
    }   
}

在这里,每次尝试回复ONE时,每次为零时为{1},ZERO为零。

$counter = 0;
foreach ($getInput as $key) {
    echo $key;
}

在这里我尝试使用foreach,在这里我并没有真正声明要查看一个索引,我尝试在for中为每个索引添加一个但不用说,它不起作用

2 个答案:

答案 0 :(得分:2)

使用substr_count,您可以以相当简单的方式执行此操作:

public class DNumber {

    ArrayList<Digit> binary = new ArrayList<Digit>();

    /**
     * Constructor for objects of class DNumber
     */
    public DNumber() {
        Digit num = new Digit(0);
        binary.add(0, num);
    }

    public DNumber(int val) {
        int num = val;
        while (num > 0) {
            Digit bin = new Digit(num % 2);
            num /= 2;
            binary.add(0, bin);
        }
    }

    /**
     * An example of a method - replace this comment with your own
     *
     * @param y a sample parameter for a method
     * @return the sum of x and y
     */
    public String toString() {
        String s = "";
        for (Digit d : binary) {
            s = s + d.toString();
        }

        return s;
    }
}

答案 1 :(得分:1)

Substr_count。
http://php.net/manual/en/function.substr-count.php

AdjudicationDetail

https://3v4l.org/BQEiR

<小时/>

如果你想在代码中暗示输出它(一一零)你可以使用数字格式 在这里,我将字符串拆分为一个数组并循环遍历它并输出每个数字的拼写。

$str = "1110001110000";

Echo "there is " .substr_count($str, "0") ." zeros \n";
Echo "there is " .substr_count($str, "1") ." ones \n";

输出:

$str = "1110001110000";
$arr = str_split($str);

$nf = new NumberFormatter("en", NumberFormatter::SPELLOUT);
Foreach($arr as $numb){
    echo $nf->format($numb) . " ";
}

https://3v4l.org/nHX59