function array_index(val) {
for (var i = 0; i < this.length; i++) {
if (this[i] == val)
return i;
}
return false;
}
Array.prototype.index = array_index;
// str のキーストローク数を求める。key はオプション
function get_stroke(str, key) {
if (!key)
key = [["@"], ["a", "b", "c"], ["d", "e", "f"],
["g", "h", "i"], ["j", "k", "l"], ["m", "n", "o"],
["p", "q", "r", "s"], ["t", "u", "v"], ["w", "x", "y", "z"],
[",", "."]];
var ret = 0;
for (var i = 0; i < str.length; i++) {
for(var j = 0; j < key.length; j++) {
var pos = key[j].index(str.charAt(i));
if (pos !== false) {
ret += pos + 1;
if (key[j].index(str.charAt(i-1)) !== false)
ret += 1;
}
}
}
return ret;
}
get_stroke("aaa"); // => 5;
get_stroke("lowreal.net"); // => 23;
get_stroke("adg.jp"); // => 7

key を変更すればひらがな入力のストローク数も!(意味ないけど)てか2バイトはできないかも。どうでもいい

key はボタンごとの文字の配列。前の文字が同じボタンの場合、そのままじゃ入力できないので +1 してる。なんかアレだ……

キャリアによってキー配置が違うかもしれないけど、知らない。

.jp ドメインはさりげなく最短なので素敵よね。

  1. トップ
  2. prog
  3. 携帯のキーストローク数
▲ この日のエントリ