【C#】Convert.ToSByte(String, IFormatProvider)メソッドの使い方を解説
C#のConvert.ToSByte()メソッドは、指定された文字列形式の数値を、カルチャ固有の書式情報に基づいて、等価な8ビット符号付き整数(sbyte)へ変換します。カルチャによって数値の表記が異なる場合でも、適切なIFormatProviderを渡すことで正しく変換できるのが特徴です。
構文
Convert.ToSByte()メソッドの構文は以下のとおりです。
public static sbyte ToSByte (string val, IFormatProvider provider);
パラメータ
- val: 変換対象となる数値を含む文字列。
- provider: カルチャ固有の書式情報を提供するオブジェクト(IFormatProviderインターフェイスを実装)。
sbyte型は「-128〜127」の範囲の整数を表現できるため、この範囲外の値を変換しようとすると例外が発生します。
使用例
それでは、Convert.ToSByte()メソッドを実装した具体的な例を見てみましょう。
using System;
using System.Globalization;
public class Demo {
public static void Main(){
CultureInfo cultures = new CultureInfo("en-US");
String str = "-2";
Console.WriteLine("Converted sbyte value...");
sbyte res = Convert.ToSByte(str, cultures);
Console.Write("{0}", res);
}
}この例では、「en-US」(英語圏・米国)のカルチャ情報を持つCultureInfoオブジェクトを作成し、文字列「-2」をsbyte型に変換しています。
実行結果
上記のコードを実行すると、次のような出力が得られます。
Converted sbyte value... -2
発生しうる例外
Convert.ToSByte()メソッドを使用する際は、以下の例外に注意が必要です。
- ArgumentNullException: 引数valがnullの場合にスローされます。
- FormatException: 文字列valが有効な数値形式ではない場合にスローされます。
- OverflowException: 文字列が表す数値がsbyte型の範囲(-128〜127)を超えている場合にスローされます。
ユーザー入力など不確定な文字列を扱う場合は、事前にsbyte.TryParse()メソッドで検証するか、例外処理を組み込んでおくと安全です。
-
C#のConvert.ToUInt16メソッドで文字列を16ビット符号なし整数に変換する方法
C#では、Convert.ToUInt16メソッドを使用することで、指定した値を16ビット符号なし整数(ushort型)に変換することができます。 まず、変換対象となる文字列を用意します。 string str = 1129; この文字列を、Convert.ToUInt16メソッドを使って16ビット符号なし整数へ変換してみましょう。 ushort res; res = Convert.ToUInt16(str); 以下に、完全なサンプルプログラムを示します。 サンプルコード using System; public class Demo { public static void Ma
-
Pythonで文字列をタプルに変換する方法
Pythonで文字列をタプルに変換したい場合、「map」関数、「tuple」関数、「int」関数、そして「split」メソッドを組み合わせることで簡単に実現できます。map関数は、リストやタプルといったイテラブル(反復可能オブジェクト)の各要素に対して、指定した関数や処理を適用し、その結果を返す関数です。int関数は、与えられたデータを整数型に変換します(変換が可能な場合に限ります)。splitメソッドは、指定した区切り文字(指定しない場合はデフォルトの区切り文字)に基づいて、文字列を複数の部分に分割します。tuple関数は、与えられたデータをタプル型に変換します。以下に具体的な例を示します。