プログラム言語 標準関数(テキスト系)

入出力

入力

標準入力(StandardInã®ç•¥)値をå–å¾—
my $str = <STDIN>

my @str = ();
for my $inpcnt (0..2){
 $str[$inpcnt] = <STDIN>;
 chomp $str[$inpcnt];
}

出力

using System.Windows.Forms;

※メッセージã®ã¿
MessageBox.Show(text: "Hello");

※+キャプション(Window上部)
MessageBox.Show(
  text: "Hello",
  caption: "caption");

※+ボタン
MessageBox.Show(
  text: "Hello",
  caption: "caption",
  buttons:MessageBoxButtons.YesNoCancel);

MessageBoxButtons列挙体メンãƒãƒ¼ä¸€è¦§
OK
「OKã€ãƒœã‚¿ãƒ³ã®ã¿ã€‚
OKCancel
「OKã€/「キャンセルã€ãƒœã‚¿ãƒ³ã€‚
AbortRetryIgnore
「中止ã€/「å†è©¦è¡Œã€/「無視ã€ãƒœã‚¿ãƒ³ã€‚メッセージボックスã®é–‰ã˜ã‚‹ãƒœã‚¿ãƒ³ãŒç„¡åŠ¹ã€‚
YesNoCancel
「ã¯ã„ã€/「ã„ã„ãˆã€/「キャンセルã€ãƒœã‚¿ãƒ³ã€‚
YesNo
「ã¯ã„ã€/「ã„ã„ãˆã€ãƒœã‚¿ãƒ³ã€‚メッセージボックスã®é–‰ã˜ã‚‹ãƒœã‚¿ãƒ³ãŒç„¡åŠ¹ã€‚
RetryCancel
「å†è©¦è¡Œã€/「キャンセルã€ãƒœã‚¿ãƒ³ã€‚

※ボタンæ“ä½œçµæžœã‚’å–å¾—
DialogResult answer = MessageBox.Show(text: "Hello",
  caption: "caption",
  buttons:MessageBoxButtons.YesNoCancel);

if (answer == DialogResult.Yes)
{
  ~
}

※+アイコン
MessageBox.Show(text: "Hello",
  caption: "caption",
  buttons: MessageBoxButtons.YesNoCancel,
  icon:MessageBoxIcon.Information);

MessageBoxIcon列挙体メンãƒä¸€è¦§
None
アイコンãªã—
音:一般警告音

Hand
赤丸ã«ç™½ã„X(åœæ­¢ãƒžãƒ¼ã‚¯)。
音:システムエラー

Question
丸ã„å¹ã出ã—ã«ç–‘å•符記å·ã€‚
音:メッセージ(å•ã„åˆã‚ã›)

Exclamation
黄色ã„ä¸‰è§’ã«æ„Ÿå˜†ç¬¦è¨˜å·ã€‚
音:メッセージ(警告)

Asterisk
丸ã„å¹ã出ã—ã«ã€Œiã€ã€‚
音:メッセージ(情報)

Stop
Handã¨åŒã˜ã€‚
Error
Handã¨åŒã˜ã€‚
Warning
Exclamationã¨åŒã˜ã€‚
Information
Asteriskã¨åŒã˜ã€‚

#include <iostream>

std::cout << 5 << '\n';
std::cout << 5 << std::endl;

※メッセージã®ã¿
MessageBox.Show(text:="Hello")

※+キャプション(Window上部)
MessageBox.Show(text:="Hello",
  caption:="caption")

※+ボタン
MessageBox.Show(text:="Hello",
  caption:="caption",
  buttons:=MessageBoxButtons.YesNoCancel)
  
※MessageBoxIcon列挙体メンãƒä¸€è¦§ã¯ã€ŒC#ã€å‚ç…§

※ボタンæ“ä½œçµæžœã‚’å–å¾—
Dim answer As DialogResult = MessageBox.Show(text:="Hello",
  caption:="caption",
  buttons:=MessageBoxButtons.YesNoCancel)

If answer = DialogResult.Yes Then
  ~
End If

※+アイコン
MessageBox.Show(text:="Hello",
  caption:="caption",
  buttons:=MessageBoxButtons.YesNoCancel,
  icon:=MessageBoxIcon.Information)
  
MessageBoxIcon列挙体メンãƒä¸€è¦§ã¯ã€ŒC#ã€å‚ç…§

print
#標準出力
print "test";
print "test\n";
print "test","\n";
my $es = "es";
print "t",$es,"t","/n"
print "t$est","/n"
⇒test

say
#æ¨™æº–å‡ºåŠ›ã€‚è‡ªå‹•ã§æ”¹è¡Œã•れる。
say "test";
⇒test

テキストæ“作

StringBulder

Stringåž‹ã®å¤‰æ•°ã«ãƒªãƒ†ãƒ©ãƒ«ã‚’æ ¼ç´ã™ã‚‹å ´åˆã€
変数ã€ãƒªãƒ†ãƒ©ãƒ«ä¸¡æ–¹ã®ãƒ¡ãƒ¢ãƒªé ˜åŸŸã‚’å¿…è¦ã¨ã™ã‚‹ã€‚
変数ã«åˆ¥ã®ãƒªãƒ†ãƒ©ãƒ«ã‚’æ ¼ç´ã™ã‚‹ç‚ºã«ã¯æ›´ã«åˆ¥ã®ãƒªãƒ†ãƒ©ãƒ«ç”¨ã®ãƒ¡ãƒ¢ãƒªé ˜åŸŸã‚‚å¿…è¦ã§éžåŠ¹çŽ‡ã€‚
String s;
s = "aaa"
s = "bbb"
※"aaa" 㨠"bbb" ã¯åˆ¥ã®ãƒ¡ãƒ¢ãƒªé ˜åŸŸ
※"aaa" ã¯ã©ã“ã‹ã‚‰ã‚‚å‚ç…§ã•れる事ãªãç„¡é§„ã«æ®‹ã‚Šç¶šã‘る。

メモリã«é–¢ã—ã¦åŠ¹çŽ‡è‰¯ãæ–‡å­—列を管ç†ã™ã‚‹ç‚ºã®ã‚¯ãƒ©ã‚¹ãŒStringBuilder
内部ã§ã¯charåž‹é…列ã®çµ„ã¿åˆã‚ã›ã‚’外部ã‹ã‚‰ã¯Stringåž‹ã®æ§˜ã«åˆ©ç”¨ã§ãる。
Stringåž‹ã®å€¤ã‚’é »ç¹ã«æ›¸ãæ›ãˆã‚‹å¿…è¦ãŒã‚ã‚‹å ´åˆã«ä½¿ç”¨ã€‚

StringBuilder sb = new StringBuilder("aa");
sb : aa
sb.toString() : aa
sb.capacity() : 18;
//16文字分ã®é…列ã®ãƒãƒƒãƒ•ã‚¡ + aa(2文字)分ã®é…列ã®ãƒãƒƒãƒ•ã‚¡

sb.append("bb");
// sb : aabb

sb.append("cc");
// sb : aabbcc

sb.insert(2, "dd");
// index : 0a1a2b3b4c5c6
// sb : aaddbbcc

sb.delete(4, 6);
// index : 0a1a2d3d4b5b6c7c8
// sb : aaddcc

sb.deleteCharAt(0);
sb.deleteCharAt(0);
// sb : ddcc

sb.reverse();
// sb : ccdd

sb.replace(1,3, "zz");
// sb : czzd

//メソッドãƒã‚§ãƒ¼ãƒ³ã«ã‚ˆã‚‹è¨˜è¿°ã‚‚å¯
sb.append("cc").insert(0, "ee");

複写

#include <cstring>

using namespace std;

char c[50];

è¦ç´ æ•°ãŒå®šç¾©ã•れã¦ã„る文字é…列ã«ã‚³ãƒ”ー
strcpy_s(c, 50, "VisualC++");
cout << c << '\n';
→VisualC++

↓ ã‚‚å¯(è¦ç´ æ•°çœç•¥)
strcpy_s(c, "VisualC++");
cout << c << '\n';
→VisualC++

char *myStr = "VisualC++";
char c[50];

strcpy_s(c, 50, myStr);
cout << c << '\n';
→VisualC++

char c*;

strcpy_s(c, "VisualC++");
→コンパイルエラー

strcpy_s(c, ?, myStr);
コピー先ã®ã‚µã‚¤ã‚ºãŒæœªå®šã®ç‚º

char temp[50] = "VisualC++";
char *c = temp;

strcpy_s(c, 50, "VisualC++");
cout << c << '\n';
→VisualC++
è¦ç´ æ•°ãŒå›ºå®šã•れã¦ã„ã‚‹ã®ã§â—‹

æŒ‡å®šã®æ–‡å­—数分ã®ã¿è¤‡å†™
文字é…列ã«å¯¾ã—ã¦ã®ã¿è¤‡å†™å¯èƒ½(ãƒã‚¤ãƒ³ã‚¿ä¸å¯)
char before[] = "VisualC++";
char after[10];

strncpy_s(after, before, 3);
cout << after << '\n';
→Vis

strncpy_s(after, before, _countof(after)-1);
cout << after << '\n';
→VisualC++

strncpy_s(after, before, 20);
→実行時エラー

ãƒã‚¤ãƒ³ã‚¿ã«è¤‡å†™ã¯ä¸å¯
char *before = "VisualC++";
char *after = " ";
strncpy_s(after, before, 5);
→コンパイルエラー

char *before = "VisualC++";
char temp[10];
char *after = temp;
strncpy_s(after, before, 5);
→コンパイルエラー

追加(çµåˆ)

string newStr = string.Concat(@"AAA", @"BBB", @"CCC");
newStr:AAABBBCCC

int a = 123;
string b = @"BBB";
string c = @"CCC";
string str = string.Join(",", a, b, c);
str:123,BBB,CCC

char *before1 = "VisualC++";
char *before2 = "VisualC#";
char after[50];

strncpy_s(after, before1, _countof(after));
è¦ç´ æ•°ãŒå®šç¾©ã•れã¦ã„る文字é…åˆ—ã®æœ«å°¾ã«è¿½åŠ 
strcat_s(after, before2);

cout << after << '\n';
→VisualC++VisualC#

strncpy_s(after, before1, 6);
è¦ç´ æ•°ãŒå®šç¾©ã•れã¦ã„る文字é…åˆ—ã®æœ«å°¾ã«æŒ‡å®šæ•°æ–‡å­—数分追加
strncat_s(after, before2, 6);

cout << after << '\n';
→VisualVisual

$s1 = "aaa";
$s2 = "bbb";
$s = $s1 . $s2;
$s .= "ccc";
→ aaabbbccc

$before = [‘a’, ‘b’, ‘c’];
$after = implode(“,”, $before);
→’a,b,c’

s = 'aaa' + 'bbb' + 'ccc'
print(s)
# aaabbbccc

s = 'aaa'
s += 'bbb'
s += 'ccc'
print(s)
# aaabbbccc

s = 'aaa'\
  'bbb'\
  'ccc'
print(s)
# aaabbbccc

print(1 + '1') # エラー
print(str(1) + '1') # 11

比較

Stringåž‹ã¯åŸºæœ¬åž‹ã§ã¯ãªãã€å‚照型。
(「プログラム言語 変数/データ型ã€å‚ç…§)

string s1 = "TEST";
string s2 = "TEST";
"TEST" ã¨ã„ã†ãƒªãƒ†ãƒ©ãƒ«ãŒãƒ¡ãƒ¢ãƒªé ˜åŸŸã«ä½œæˆã•れã€
s1ã€s2ã¨ã‚‚ãã“ã‚’å‚ç…§ã™ã‚‹ã€‚

// å‚ç…§å€¤ã®æ¯”較
bool ret1 = (s1 == s2);
⇒ ret1 : true
// æ–‡å­—åˆ—ã®æ¯”較
bool ret2 = s1.Equals(s2);
⇒ ret2 : true

string s3 = new string ("TEST");
string s4 = new string ("TEST");
"TEST" ã¨ã„ã†ãƒªãƒ†ãƒ©ãƒ«ãŒï¼’ã¤ãƒ¡ãƒ¢ãƒªé ˜åŸŸã«ä½œæˆã•れã€
s1ã€s2ãれãžã‚Œåˆ¥ã®ãƒ¡ãƒ¢ãƒªé ˜åŸŸã‚’å‚ç…§ã™ã‚‹ã€‚

// å‚ç…§å€¤ã®æ¯”較
bool ret3 = (s3 == s4);
⇒ ret3 : false

// æ–‡å­—åˆ—ã®æ¯”較
bool ret4 = s3.Equals(s4);
⇒ ret4 : true

char myChar1[] = "VisualC++";
char myChar2[] = "VisualC#";

int result;
result = strcmp(myChar1, myChar2);
result:1

char myChar1[] = "VisualC++";
char myChar2[] = "VisualC++";

result = strcmp(myChar1, myChar2);
result:0

char *myChar1 = "VisualC++";
char *myChar2 = "VisualC#";

result = strcmp(myChar1, myChar2);
ãƒã‚¤ãƒ³ã‚¿OK
result:1

æŒ‡å®šæ–‡å­—æ•°åˆ†ã®æ¯”較
result = strncmp(myChar1, myChar2, 6);
result:0

bool = x.Equals(y)
//⇒bool : false;

bool = x.Equals(x)
//⇒bool : true;

String s1 = "TEST";
String s2 = "TEST";
"TEST" ã¨ã„ã†ãƒªãƒ†ãƒ©ãƒ«ãŒãƒ¡ãƒ¢ãƒªé ˜åŸŸã«ä½œæˆã•れã€
s1ã€s2ã¨ã‚‚ãã“ã‚’å‚ç…§ã™ã‚‹ã€‚

// å‚ç…§å€¤ã®æ¯”較
Boolean ret1 = (s1 == s2);
⇒ ret1 : true
// æ–‡å­—åˆ—ã®æ¯”較
Boolean ret2 = s1.equals(s2);
⇒ ret2 : true

String s3 = new String("TEST");
String s4 = new String("TEST");
"TEST" ã¨ã„ã†ãƒªãƒ†ãƒ©ãƒ«ãŒï¼’ã¤ãƒ¡ãƒ¢ãƒªé ˜åŸŸã«ä½œæˆã•れã€
s1ã€s2ãれãžã‚Œåˆ¥ã®ãƒ¡ãƒ¢ãƒªé ˜åŸŸã‚’å‚ç…§ã™ã‚‹ã€‚

// å‚ç…§å€¤ã®æ¯”較
Boolean ret3 = (s3 == s4);
⇒ ret3 : false
// æ–‡å­—åˆ—ã®æ¯”較
Boolean ret4 = s3.equals(s4);
⇒ ret4 : true

String myStr = "abc";

Boolean a = myStr.startsWith("a");
⇒true
Boolean b = myStr.startsWith("b");
⇒false
Boolean c = myStr.startsWith("c", 2);
⇒true

検索(判定・ä½ç½®)

bool = "12345".Contains("12");
bool:true

bool ret = "12345".All(x => x == 'x');
ret : false

string s = "123456789";
int index = s.indexOf("1");
⇒ index : 0

int index = s.indexOf("2");
⇒ index : 1

int index = s.indexOf("0");
⇒ index : -1

char *myChar1 = "VisualC++";
char myChar2[] = "VisualC#";
char *result;

検索ã—ãŸæ–‡å­—ãŒæœ€åˆã«ç¾ã‚Œã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å–å¾—
result = strchr(myChar1, 'C');
ãƒã‚¤ãƒ³ã‚¿OK。
result:C++

result = strchr(myChar2, 'C');
result:C#

検索ã—ãŸæ–‡å­—åˆ—ãŒæœ€åˆã«ç¾ã‚Œã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å–å¾—
result = strstr(myChar1, "C");
ãƒã‚¤ãƒ³ã‚¿OK。
result:C++

result = strstr(myChar2, "C");
result:C#

Dim s As String = "123456789"
Dim index As Integer = s.IndexOf("1")
⇒ index : 0

Dim index As Integer = s.IndexOf("2")
⇒ index : 1

Dim index As Integer = s.IndexOf("0")
⇒ index : -1

$pos = strpos('2018-01-01 09:10:10', ' ');
if ($pos !== false) {
 echo $pos;
 →10
}

#å«ã‚€ã‹ï¼Ÿã®åˆ¤å®š
print('a' in 'abcde') #true
print('z' in 'abcde') #true

#é–‹å§‹ã™ã‚‹ã‹ï¼Ÿã®åˆ¤å®š
print('abcde'.startswith('a')) #true
print('abcde'.startswith('e')) #false

#終了ã™ã‚‹ã‹ï¼Ÿã®åˆ¤å®š
print('abcde'.endswith('a')) #false
print('abcde'.endswith('e')) #true

#é–‹å§‹ä½ç½®
print('abcabc'.find('a')) #0(先頭ä½ç½®)
print('abcabc'.find('e')) #-1
print('abcabcabc'.rfind('a')) #6(最終ä½ç½®)
print('abcabcabc'.rfind('e')) #-1
print('abcabc'.index('a')) #0(先頭ä½ç½®)
print('abcabc'.index('e')) #エラー
print('abcabcabc'.rindex('a')) #6(最終ä½ç½®)
print('abcabcabc'.rindex('e')) #エラー

isnumeric=str.isnumeric()
isdecimal=str.isdecimal()
isdigit=str.isdigit()
isalpha=str.isalpha()
isalnum=str.isalnum()
islower=str.islower()
isupper=str.isupper()

isnumeric isdecimal isdigit isalpha isalnum islower isupper
111 True True True False True False False
111 True True True False True False False
一壱 True False False True True False False
Aa False False False True True False False
aa False False False True True True False
AA False False False True True False True
ï¼¡ï½ False False False True True False False
ï½ï½ False False False True True True False
AA False False False True True False True
アア False False False True True False False
ã‚亜 False False False True True False False
#! False False False False False False False

var s = "123456789";
var index = s.indexOf("1");
⇒ index : 0

var index = s.indexOf("2");
⇒ index : 1

var index = s.indexOf("0");
⇒ index : -1

ç½®æ›

String before = "abcde";
String after = before.Replace(oldValue:"c", newValue:"");
⇒ after : abde
Dim before As String = "abcde"
Dim after As String = before.Replace("c","")
⇒ after : abde
String myBefore = String.valueOf("AAAAA");

String myAfter = myBefore.replace("AA","BB");
⇒myAfter : BBBBA
String myAfter = myBefore.replace('AA','BB');
⇒コンパイルエラー
String myAfter = myBefore.replace("AA",'B');
⇒コンパイルエラー
String myAfter = myBefore.replace('A','B');
⇒myAfter : BBBBB

æ­£è¦è¡¨ç¾ã‚’用ã„ãŸç½®æ›(replaceAll)
ç½®æ›å¾Œæ–‡å­—列 = ç½®æ›å¯¾è±¡(ç½®æ›å‰)文字列.replaceAll("æ­£è¦è¡¨ç¾æ–‡å­—列", "ç½®æ›ã™ã‚‹æ–‡å­—列");

String myStr = "AAAABBBBCCCC";
String newStr = myStr.replaceAll(".", "Z");
⇒newStr : ZZZZZZZZZZZZ

str_replace(検索文字列,ç½®æ›æ–‡å­—列,検索対象)

$after = str_replace("bbb", "zzz", "aaabbbccc");
$after:"aaazzzccc"

検索語をé…列ã§è¤‡æ•°æŒ‡å®š
$search = array("aaa","bbb","ccc");
$search = array("\r\n","\r","\n"); ã§æ”¹è¡Œã‚³ãƒ¼ãƒ‰ã‚’指定å¯
$after = str_replace($search, "zzz", "aaabbbccc");
$after:"zzzzzzzzz"

$search = array("aaa", "bbb", "ccc");
$replace = array("AAA", "BBB", "CCC");
$after = str_replace($search, $replace, "aaabbbccc");
$after:"AAABBBCCC"

$search = array("aaa", "bbb", "ccc");
$replace = array("AAA", "BBB");
ç½®æ›æ–‡å­—列ãŒã€æ¤œç´¢å¯¾è±¡ã‚ˆã‚Šå°‘ãªã„
$after = str_replace($search, $replace, "aaabbbccc");
$after:"AAABBB"
空文字ã§ç½®æ›ã•れる

echo str_replace("\r\n", "<br>", "~<br>~")
→
~\r\n
~

ã€æ­£è¦è¡¨ç¾ã‚’用ã„ãŸç½®æ›ã€‘
$ret = preg_replace( 検索, ç½®æ›, 対象);
$ret = preg_replace( '/æ­£è¦è¡¨ç¾/', ~, ~);
$ret = preg_replace( '/(\s| )/', '', ' aa a ');
→aaa

ã€htmlã¸ã®ç½®æ›ã€‘
XHTML
echo nl2br("~\r\n~");
→
~<br />
~

éžXHTML
echo nl2br("~\r\n~", false);
→
~<br>
~

々ã¸ã®ç½®æ›ã€‘
$ret = $text->truncate(
 aaaaaaaaaa,
 5,
 array(
  'ending' => '…'
 )
);
$ret →
aaaaa…

々ã¸ã®ç½®æ›ã€‘
$ret = $this->Text->truncate(
 aaaaaaaaaa,
 5,
 array(
  'ellipsis' => '…'
 )
);
$ret →
aaaaa…
#å…¨ã¦ç½®æ›
print('aaaaa'.replace('a', 'b')) #bbbbb

#ç½®æ›å€‹æ•°ã‚’指定
print('aaaaa'.replace('a', 'b', 3)) #bbbaa

#æ­£è¦è¡¨ç¾ã§ç½®æ›
import re

print(re.sub(r'^a', 'A', 'aaaaa')) #Aaaaa

var val = 文字列.replace( ç½®æ›å‰, ç½®æ›å¾Œ );

alert( '1<br>2<br>3' ).replace( '<br>', '');
→12<br>3
通常置æ›ã¯1回ã ã‘

alert( '1<br>2<br>3' ).replace( /<br>/g, '');
→123
æ­£è¦è¡¨ç¾åˆ©ç”¨ã«ã‚ˆã‚Šç½®æ›ã¯æœ€å¾Œã¾ã§å¯èƒ½

æ­£è¦è¡¨ç¾åˆ©ç”¨æ™‚
/ ã§å›²ã‚€
末尾ã«g

chomp
改行削除
my $input = <STDIN>; ※5を入力ã—ãŸã¨ã™ã‚‹ã€‚
chomp $input;
$input *= 2;
print $input
⇒ $input : 10

windowsç­‰ã®ãƒ†ã‚­ã‚¹ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã®æ”¹è¡Œã‚’削除ã™ã‚‹å ´åˆ
$str =~ s/\r//; #CRを削除ã™ã‚‹
$str =~ s/\n//; #LFを削除ã™ã‚‹

トリム

å‰å¾ŒåŠè§’スペーストリム
String s = " A A A ".trim();
s:"A A A"

全角スペーストリム
String s = StringUtils.strip(" ");
s:""

$ret = trim(' a aa  ');
$ret:a aa

型変æ›

「プログラム言語 データ型:型情報ã€å‚ç…§

大尿–‡å­—変æ›

大文字変æ›
UCase(~)

å°æ–‡å­—変æ›
LCase(~)

strBig = UCase(~)
strSmall = LCase(~)

String s = "Abc";
System.out.println(s.toLowerCase()); →abc
System.out.println(s.toUpperCase()); →ABC

print('aaa'.upper()) # AAA
print('AAA'.lower()) # aaa

切り出ã—

const string CONST_STRING = "abcdefghijklmn";

string str1 = CONST_STRING.Substring(3,3);
⇒str1:def

※× substring(é–‹å§‹ä½ç½®, 終了ä½ç½®)ã§ã¯ãªã„。JAVAã¨ã¯é•ã†ã€‚
※○ substring(é–‹å§‹ä½ç½®, 文字数)

Const CONST_STRRING As String = "abcdefghijklmn"

Dim str1 As String = Strings.Left(CONST_STRRING, 3)
⇒str1:abc
Dim str2 As String = Strings.Right(CONST_STRRING, 3)
⇒str2:lmn
Dim str3 As String = Strings.Mid(CONST_STRRING, 3, 3)
⇒str1:cde
Dim str4 As String = CONST_STRRING.Substring(startIndex:=3,length:=3)
⇒str1:def

String myBefore = String.valueOf("ABCDEFG");

String myAfter = myBefore.substring(3, 5);
⇒myAfter : DE
※× substring(é–‹å§‹ä½ç½®, 文字数ã§ã¯ãªã„) .Netã¨ã¯é•ã†
※○ substring(é–‹å§‹ä½ç½®, 終了ä½ç½®)

String myAfter = myBefore.substring(3, 2);
⇒実行時エラー

$year = substr('2018-01-01 09:10:10', 0, 4);
$year:2018

print('abcde'[0]) #a(先頭)
print('abcde'[1]) #b
print('abcde'[4]) #e
print('abcde'[-1]) #e(末尾)
print('abcde'[0:2]) #先頭ã‹ã‚‰2文字目
print('abcde'[:2]) #先頭ã‹ã‚‰2文字目
print('abcde'[2:]) #3文字目ã‹ã‚‰æœ«å°¾
print('abcde'[:]) #先頭ã‹ã‚‰æœ«å°¾
print('abcde'[-3:]) #後ã‚ã‹ã‚‰3文字目ã‹ã‚‰æœ«å°¾
print('abcde'[-3:-2]) #後ã‚ã‹ã‚‰3文字目ã‹ã‚‰å¾Œã‚ã‹ã‚‰2文字目
my $before = "abcde";
my $after = substr($before,0,2);
⇒ $after : ab
"文字列".substring(é–‹å§‹ä½ç½® , 終了ä½ç½®)
é–‹å§‹ä½ç½®ã¯ï¼ã‚¹ã‚¿ãƒ¼ãƒˆ

var Value = "ABCDEFG".substring( 1 , 3 ) ;
// ⇒ Value : BC

SET STR=12345

æ§‹æ–‡ æ„味 çµæžœ
%STR% 変数STRã®å€¤å…¨ä½“ 12345
%STR:~2% 2文字目ã‹ã‚‰ã€æœ€å¾Œã¾ã§ 345
%STR:~2,2% 2文字目ã‹ã‚‰ã€2文字分 34
%STR:~2,-2% 2文字目ã‹ã‚‰ã€æœ€å¾Œã®2文字分を除ã„ãŸã‚‚ã® 3
%STR:~-2% 後ã‚ã‹ã‚‰2文字目ã‹ã‚‰ã€æœ€å¾Œã¾ã§ 45
%STR:~-3,2% 後ã‚ã‹ã‚‰3文字目ã‹ã‚‰ã€2文字分 34
%STR:~-3,-2% 後ã‚ã‹ã‚‰3文字目ã‹ã‚‰ã€æœ€å¾Œã®2文字分を除ã„ãŸã‚‚ã® 3

文字数

char myChar1[] = "VisualC++";
char *myChar2 = "VisualC#";

int elmCnt;
elmCnt = strlen(myChar1);
elmCnt:9
終端文字(\0)ã¯å«ã¾ãªã„

elmCnt = strlen(myChar2);
ãƒã‚¤ãƒ³ã‚¿OK
elmCnt:8
終端文字(\0)ã¯å«ã¾ãªã„

ãƒã‚¤ãƒˆæ•°

int i = "ã‚¢".getBytes(Charset.forName("UTF-8")).length;
→3
int i = "ã‚¢".getBytes(Charset.forName("Shift-JIS")).length;
→2
int i = "ï½±".getBytes(Charset.forName("UTF-8")).length;
→2
int i = "ï½±".getBytes(Charset.forName("Shift-JIS")).length;
→1

int i = "ï½±".getBytes().length;
→?
実行環境(Windows?Linux?)ã«å½±éŸ¿ã•れる
Windows=Shift-Jisã€Linuxï¼UTF-8

Charåž‹ã¨Stringåž‹

char[] myChar1 = new char[3];
myChar1[0] = ‘1’;
myChar1[1] = ‘2’;
myChar1[2] = ‘3’;
//myChar[3] = ‘4’; ã¯ã‚¨ãƒ©ãƒ¼

char[] myChar2 = {‘1′,’2′,’3’};

char[] myChar3 = "123".ToCharArray();

int len = myChar1.Length;
//⇒len:3
int number = (int)myChar1[0];
//⇒number:49(文字コード)
char myChar = (char)number;
//⇒myChar:’1′
string myString = myChar.ToString();
//⇒myString:"1"

Dim myChar1(3) As Char
myChar1(0) = "1"
myChar1(1) = "2"
myChar1(2) = "3"
myChar1(3) = "4"
‘myChar1(4) = "5" ã¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚¨ãƒ©ãƒ¼

Dim myChar2() As Char = {"1", "2", "3"}
Dim myChar3() As Char = "123".ToCharArray()

Dim len As Integer = myChar1.Length
‘len:4
Dim number As Integer = Val(myChar1(0))
‘number:1
Dim myString As String = number.ToString()
‘myString:"1"

ãƒã‚¤ãƒ³ãƒ‰(埋ã‚è¾¼ã¿)

{0}ã€{1}ã«å¯¾ã—ã¦å€¤ã‚’指定ã™ã‚‹
string disp1 = string.Format("aaaa{0}aaa{1}aaa{2}", myChar1[0] , myChar1[1] , myChar1[2]);
⇒disp1 : "aaaa1aaa2aaa2"

{0}ã€{1}ã«å¯¾ã—ã¦å€¤ã‚’指定ã™ã‚‹
Dim disp1 As String = String.Format("aaaa{0}aaa{1}aaa{2}", myChar1(0), myChar1(1), myChar1(2))

%sã«å¯¾ã—ã¦å€¤ã‚’指定ã™ã‚‹
String s = String.format("000%s000%s000%s000", "A","B","C")

{N}ã«å¯¾ã—ã¦å€¤ã‚’指定ã™ã‚‹
String s = MessageFormat.format("000{0}000{1}000{2}000","A","B","C");
String s = MessageFormat.format("000{0}000{1}000{2}000",new Object[]{"A","B","C"}});

S:000A000B000C000

purpose = "ppp";

alert( `ccc${purpose}ccc` );
→ cccpppccc

$s = "XXXXX{$purpose}XXXXX";

連想é…列
$s = "XXXXX$array[name]XXXXX";

オブジェクト
$s = "XXXXX{$item->name}XXXXX{$item->method()}";

定数
define("TEST_MESSAGE", "テスト");

定数を出力ã™ã‚‹ãŸã‚ã®ã‚¯ãƒ­ãƒ¼ã‚¸ãƒ£
$constant = function($c){ return $c; };

$s = "XXXXX{$constant(TEST_MESSAGE)}XXXXX";

#format関数
print('aaa{}aaa{}aaa'.format('ddd', 'ddd'))
→aaadddaaadddaaa

print('aaa{0}aaa{1}aaa'.format('ddd', 'ddd'))
→aaadddaaadddaaa

print('aaa{a}aaa{b}aaa'.format(a='ddd', b='ddd'))
→aaadddaaadddaaa

é–¢æ•°ã®æˆ»ã‚Šå€¤ã‚’ãƒã‚¤ãƒ³ãƒ‰
print('aaa{a}aaa{b}aaa'.format(a=getString(), b=getString()))
→aaa(getString()ã®æˆ»ã‚Šå€¤)aaa(getString()ã®æˆ»ã‚Šå€¤)aaa

é…列
ary = ['php', 'java', 'python']
print('{0[0]}ã€{0[1]}ã€{0[2]}'.format(ary))

連想é…列
ary = {'php':'CakePHP3', 'java':'Spring-Boot', 'python':'Django'}
print('{0[php]}ã€{0[java]}ã€{0[python]}'.format(ary))

#f文字ã¸ã®åŸ‹ã‚è¾¼ã¿
str1 = 'ddd'
str2 = 'ddd'
print(f'aaa{str1}aaa{str2}aaa')
→aaadddaaadddaaa

print(f'aaa{getString()}aaa{getString()}aaa')
→aaa(getString()ã®æˆ»ã‚Šå€¤)aaa(getString()ã®æˆ»ã‚Šå€¤)aaa

my $y = "bbb";
my @z = (c,c,c);

#「"ã€ã§å›²ã¾ã‚ŒãŸæ–‡å­—列中ã®å¤‰æ•°
print "aaa$y@z";
⇒aaabbbccc

#「'ã€ã§å›²ã¾ã‚ŒãŸæ–‡å­—列中ã®å¤‰æ•°
print 'aaa$y@z';
⇒aaa$y@z

0埋ã‚

string disp2 = "55".PadLeft(5, '0');
disp2:55000
string disp3 = "55".PadRight(5, ' ');
disp2:  55

通常ã®{0}ã€{1} ã«åŠ ãˆã€æ›¸å¼:xxxxxを指定ã™ã‚‹
string disp4 = String.Format("{0:00000}", 55);
⇒disp4 : "00055"

Dim disp2 As String = "55".PadLeft(5, CType("0", Char))
Dim disp3 As String = "55".PadRight(5, CType(" ", Char))
‘通常ã®{0}ã€{1} ã«åŠ ãˆã€æ›¸å¼:xxxxxを指定ã™ã‚‹
Dim disp4 As String = String.Format("{0:00000}", 55)
‘⇒disp4 : "00055"

s = String.format("%05d", 123);
→00123
s = String.format("%5s", 123);
→ 123
s = String.format("%5s", "123").replace(" ", "0");
→00123
s = String.format("%,d", 123567);
→1,234,567

sprintf('%05d', 9)
→00009

sprintf('%5s', 9)
→    9

print('python'.rjust(10)) # ____python
print('python'.rjust(10, ' ')) # ____python
print('python'.rjust(10, '0')) # 0000python

print('python'.ljust(10)) # python____
print('python'.ljust(10, ' ')) # python____
print('python'.ljust(10, '0')) # python0000

print('python'.center(10)) # __python__
print('python'.center(10, ' ')) # __python__
print('python'.center(10, '0')) # 00python00

var value = 5
("0" + value).slice(-2);
// ⇒ value : 05

å°æ•°ç‚¹æ¡æŒ‡å®š

//å°æ•°ç‚¹æ¡æŒ‡å®š
string disp5 = String.Format("{0:0.00000}", 55.123);
//⇒disp5 : "55.12300"

//å°æ•°ç‚¹æ¡æŒ‡å®šï¼†ï¼åŸ‹ã‚
string disp6 = String.Format("{0:000.00000}", 12.345);
//⇒disp6 : "012.34500"

‘å°æ•°ç‚¹æ¡æŒ‡å®š
Dim disp5 As String = String.Format("{0:0.00000}", 55.123)
‘⇒55.12300

‘å°æ•°ç‚¹æ¡æŒ‡å®šï¼†0埋ã‚
Dim disp6 As String = String.Format("{0:000.00000}", 55.123)
‘⇒055.12300

var value = (0.33333).toFixed(2);
// ⇒ value : 0.33

æ¡åŒºåˆ‡ã‚Š

//カンマ区切り
string disp7 = String.Format("{0:#,#}", 123456789);
//⇒disp7 : 123,456,789

//ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šï¼†å°æ•°ç‚¹æ¡æŒ‡å®š
string disp8 = String.Format("{0:#,#.00}", 12345.6);
//⇒disp8 : 12,345.60

‘カンマ区切り
Dim disp7 As String = String.Format("{0:#,#}", 1234567890)
‘⇒1,234,567,890

‘ã‚«ãƒ³ãƒžåŒºåˆ‡ã‚Šï¼†å°æ•°ç‚¹æ¡æŒ‡å®š
Dim disp8 As String = String.Format("{0:#,#.00}", 12345.6)
‘⇒12,345.60

echo number_format(1234.567);
echo number_format(1234.567, 0);
→1,235
å°æ•°ç‚¹ä»¥ä¸‹å››æ¨äº”å…¥

echo number_format(1234.567, 2);
→1,234.57
å°æ•°ç‚¹ç¬¬ä¸‰ä½ã‚’å››æ¨äº”å…¥

Null

Null判定
bool ret;

ret = string.IsNullOrWhiteSpace(value: @"AAA");
ret:false
ret = string.IsNullOrWhiteSpace(value: @" ");
ret:true
ret = string.IsNullOrWhiteSpace(value: @"");
ret:true
ret = string.IsNullOrWhiteSpace(value: null);
ret:true

ret = string.IsNullOrEmpty(value: @"AAA");
ret:false
ret = string.IsNullOrEmpty(value: @" ");
ret:false
ret = string.IsNullOrEmpty(value: @"");
ret:true
ret = string.IsNullOrEmpty(value: null);
ret:true

Objects.~
System.out.println(Objects.isNull(null)); // true
System.out.println(Objects.isNull("Java")); // false

System.out.println(Objects.nonNull(null)); // false
System.out.println(Objects.nonNull("Java")); // true

System.out.println(Objects.compare(null, null, Comparator.naturalOrder())); // 0
System.out.println(Objects.compare("Java", "Java", Comparator.naturalOrder())); // 0
System.out.println(Objects.compare("Java", "PHP", Comparator.naturalOrder())); // -~
System.out.println(Objects.compare("Java", null, Comparator.naturalOrder())); // 例外

Object obj = Objects.requireNonNull("Java"); // obj:"Java"
Object obj = Objects.requireNonNull(null); // 例外
Object obj = Objects.requireNonNull(null, "nullã§ã™"); // 例外メッセージ

if ( !is_null(~) ) {
 nullã§ãªã„時ã®å‡¦ç†
}

値 isset() empty() is_null() ===null ===''
1 æ•°å­— 1 0 0 0 0
'a' 文字 1 0 0 0 0
null 0 1 1 1 0
'' 1 1 0 0 1

nullåˆä½“演算å­(PHP7以é™)
$result = $aaa ?? 1;

↓ã¨åŒã˜
$result = is_null($aaa) ? 1 : $aaa;

ç½®æ›

Follow me!