#はじめに
既存資産をJavaからC#へ移植をしているが、文字列の一部を切り出すメソッドの仕様の違いによりバグがでているため今後のためにメモ。
文字列の一部を切り出すメソッド
Java, C#ともに2種類ずつある。説明は参考文献の引用である。
#JavaのString#substringメソッド
メソッド | 説明 |
---|---|
public String substring(int beginIndex) | この文字列の部分文字列である文字列を返します。部分文字列は指定されたインデックスで始まり、この文字列の最後までになります。 |
public String substring(int beginIndex, int endIndex) | この文字列の部分文字列である文字列を返します。部分文字列は、指定されたbeginIndexから始まり、インデックスendIndex - 1にある文字までです。したがって、部分文字列の長さはendIndex-beginIndexになります。 |
#C#のString#Substringメソッド
メソッド | 説明 |
---|---|
public string Substring (int startIndex); | インスタンスから部分文字列を取得します。 部分文字列は、文字列中の指定した文字の位置で開始し、文字列の末尾まで続きます。 |
public string Substring (int startIndex, int length); | インスタンスから部分文字列を取得します。 この部分文字列は、指定した文字位置から開始し、指定した文字数の文字列です。 |
#JavaからC#へ移植する場合の作業
以下のように変換すればよい。
Javaメソッド | 変換前Javaコード | 変換後C#コード |
---|---|---|
public String substring(int beginIndex) | "文字列".substring(beginIndex) | "文字列".Substring(beginIndex) |
public String substring(int beginIndex, int endIndex) | "文字列".substring(beginIndex, endIndex) | "文字列".Substring(beginIndex, endIndex - beginIndex) |
#C#からJavaへ移植する場合の作業
以下のように変換すればよい。
C#メソッド | 変換前C#コード | 変換後Javaコード |
---|---|---|
public string Substring (int startIndex); | "文字列".Substring(beginIndex) | "文字列".substring(beginIndex) |
public string Substring (int startIndex, int length); | "文字列".Substring(beginIndex, length) | "文字列".substring(beginIndex, beginIndex + length) |
#参考