[topic] 文字列中のアルファベットを大文字にする

Pythonではこう
1
"abc".upper() #-> "ABC"

Posted feedbacks - Nested

Flatten Hidden
Rubyではupcateを使う
1
"abc".upcase #-> "ABC"
Erlangではとりあえずhttpd_util:to_upperを使えばいいみたいだけども、本当にhttpd_utilなんてごつそうなものが必要なのだろうか…
1
httpd_util:to_upper("abc").
Perlではucという関数を使う。逆はlc。
1
print uc('abc') #-> ABC
JavaScriptでは文字列のtoUpperCaseメソッドを使う。
1
"abc".toUpperCase() #-> "ABC"
Squeak Smalltalk で。
1
'abc' asUppercase   "=> 'ABC' "
Common Lisp だと string-upcase
引数を破壊的に変更する nstring-upcase もあります
1
(string-upcase "abc")
Schemeは string-upcase です。

R5RSまでならsrfi-13に規定されています。
Gaucheではこう書けます。ASCII範囲外の動作は未定義です。

(use srfi-13)
(string-upcase "abc") => "ABC"

R6RSならば標準ライブラリ(rnrs unicode)に規定されています。
Unicodeのcase mappingに従うこととされています。

(import (rnrs unicode)))
(string-upcase "Straße")         ⇒ "STRASSE"
おっと、コードを書かなかったら言語が無くなっちゃった。
上のやつはSchemeです。
> toupper("abc")
[1] "ABC"
1
toupper(文字列)
Javaじゃば
1
"hoge".toUpperCase();
文字列は文字のリストなので、
Data.Char モジュールにある toUpper を
map で各文字に適用してやればOK
1
2
3
4
import Data.Char (toUpper)

toUpCase :: String -> String
toUpCase = map toUpper
あれ?関数定義じゃなくて、式を求められているのかな。
Haskellでは Data.Char モジュールをインポートしてあれば以下のとおり
1
map toUpper "abc"

ぶぃびぃどとねとだとこう。

1
Dim Str As String = "abc".ToUpper
Unlambda の練習を。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
```si
  `d``@i
     `c
      ``s``s``?ai.Ai
       ``s``s``?bi.Bi
        ``s``s``?ci.Ci
         ``s``s``?di.Di
          ``s``s``?ei.Ei
           ``s``s``?fi.Fi
            ``s``s``?gi.Gi
             ``s``s``?hi.Hi
              ``s``s``?ii.Ii
               ``s``s``?ji.Ji
                ``s``s``?ki.Ki
                 ``s``s``?li.Li
                  ``s``s``?mi.Mi
                   ``s``s``?ni.Ni
                    ``s``s``?oi.Oi
                     ``s``s``?pi.Pi
                      ``s``s``?qi.Qi
                       ``s``s``?ri.Ri
                        ``s``s``?si.Si
                         ``s``s``?ti.Ti
                          ``s``s``?ui.Ui
                           ``s``s``?vi.Vi
                            ``s``s``?wi.Wi
                             ``s``s``?xi.Xi
                              ``s``s``?yi.Yi
                               ``s``s``?zi.Zi
                                ``si|
 `ci
秀丸マクロでは toupper 関数を使います。

第二パラメータで全角アルファベットを対象にすることもできます。(V7.04以降)
1
2
3
4
5
6
message toupper( "abc" ); //-> "ABC"

message toupper( "abcabc", 0 ); //-> "abcabc"
message toupper( "abcabc", 1 ); //-> "ABCabc"
message toupper( "abcabc", 2 ); //-> "abcABC"
message toupper( "abcabc", 3 ); //-> "ABCABC"
無かったのでC#
1
"abc".ToUpper();
毛色は違いますがHTML+CSSで。
1
<p style="text-transform: uppercase;">hoge</p>

uppercaseで大文字、lowercaseで小文字になります。

1
2
String.uppercase "abc";;
Char.uppercase 'a';;
Dの標準ライブラリphobosでは、std.string.toupperを使います。
配列を第一引数に取る関数を配列のプロパティのように呼び出せる糖衣構文もあります。
1
2
3
// import std.string;
toupper("abc")
"abc".toupper()
stdlibにtoupper,tolowerがあります。
1
2
toupper 'aBcDeF'
tolower 'aBcDeF'

Factor では strings ボキャブラリの >upper ワードです。

1
"abc" USE: strings >upper
シェルスクリプトで。
1
2
3
4
5
6
7
#!/bin/sh -

upper() { echo "$@" | tr '[a-z]' '[A-Z]'; }

t=`upper 'abc'`

echo "$t"
バッチで。

  e.g.
    C:\>upper abc
    ABC

遅延環境変数展開を利用しているので、Windows NTでは動作しません。Windows XPで動作
を確認。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
:: upper.bat
@echo off
  setlocal enabledelayedexpansion
    set t=

    if "%*" equ "" (call :usage & exit /b 1)

    for %%s in (%*) do (
      call :upper %%s t
      echo !t!
    )
  endlocal & exit /b 0
goto :EOF

:usage
  setlocal
    echo Usage: %~n0 [STRING...]
  endlocal
goto :EOF

:upper
  setlocal
    set t=%~1

    set t=%t:a=A%
    set t=%t:b=B%
    set t=%t:c=C%
    set t=%t:d=D%
    set t=%t:e=E%
    set t=%t:f=F%
    set t=%t:g=G%
    set t=%t:h=H%
    set t=%t:i=I%
    set t=%t:j=J%
    set t=%t:k=K%
    set t=%t:l=L%
    set t=%t:m=M%
    set t=%t:n=N%
    set t=%t:o=O%
    set t=%t:p=P%
    set t=%t:q=Q%
    set t=%t:r=R%
    set t=%t:s=S%
    set t=%t:t=T%
    set t=%t:u=U%
    set t=%t:v=V%
    set t=%t:w=W%
    set t=%t:x=X%
    set t=%t:y=Y%
    set t=%t:z=Z%

  endlocal & set %2=%t%
goto :EOF

PHPならこうですな。

1
2
$string = 'abc';
strtoupper( $string );
1
String.map Char.toUpper "abc"

SQL Server 2008 で確認しました。

1
SELECT UPPER('abc');

Index

Feed

Other

Link

Pathtraq

loading...