【Talend (Java)】Perl5Matcher と Perl5Compiler
tLibraryLoad で下記jarを指定。
・jakarta-oro-2.0.8.jar
OnSubjebOK で tJava へ結ぶ。
import org.apache.oro.text.regex.Pattern;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;
String email="info@talend.com";
Perl5Matcher matcher = new Perl5Matcher();
Perl5Compiler compiler = new Perl5Compiler();
Pattern pattern=compiler.compile("^[\\w_.-]+@[\\w.-]+\\.[\\w]+$");
if(matcher.matches(email,pattern)) {
System.out.println(email + " is a correct email address");}
else{
System.err.println(email + " is an incorrect email address");
}
Perl5Matcherクラス
文字列が、あるパターンに厳密にマッチしているかどうかを判定します。
Perl5Compilerクラス
文字列が渡された時に、元の文字列の各文字を文字通りに解釈するPerl5 正規表現を返却します。
【Java】文字列の文字コード変換
Stringの内部にあるのはchar型 (16進数で4桁) の配列であって、byte型 (16進数で2桁) の内部データは存在しません。
char型のまま16進数で出力する場合は次の通り。
int len = str.length();
for (int i = 0; i < len; i++) {
char c = str.charAt(i);
System.out.println(Integer.toString*1;
}
・StringをUTF8のbyte配列に変換してから出力するなら以下になります。
String str = "123ABC漢字";
byte[] b = str.getBytes("UTF8");
int len = b.length;
for (int i = 0; i < len; i++) {
System.out.println(Integer.toString(b[i] & 0xFF, 16));
}
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();
}
*1:int)c, 16
【Linux】カーネル管理の共有メモリ確認コマンド
カーネル管理の共有メモリ確認コマンド
どのような場合にポートの競合が発生するか
Linux では、bind() システムコールを起動して使用するポートを指定 しない場合、もしくは、引数のポート番号に 0 を指定して bind() システムコールを起動した場合、特定のポート番号の中から アプリケーションが使用するポート番号をカーネルが任意に割り当てる。
このため、あるアプリケーションがカーネルが割り当てたポート番号を 使用しているときに、他のアプリケーションがそのポート番号を指定して 使用しようとすると、ポート番号の競合が起こる。
カーネルが任意に割り当てるポート番号の範囲は、カーネルパラメータ (sysctlの結果.txt)の net.ipv4.ip_local_port_range にて 確認できる。
たとえば、 net.ipv4.ip_local_port_range = 1024 65000 となっている場合、カーネルが任意に割り当てるポート番号の範囲が 1024 ~ 65000 であることを意味する。