1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JavaのsubstringとC#のSubstringの違い、移植方法を整理してみる

Last updated at Posted at 2020-01-05

#はじめに
既存資産を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)

#参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?