トークン
日本語 | 単語、証明 |
英語 | token |
ふりがな | とーくん |
フリガナ | トークン |
コインのようにバラバラと置かれている物。
主に2つの意味がある。
ひとつは「文の中の単語・構成要素」。
文の中の単語や記号、数値等を「トークン」と言う。
たとえば、StringTokenizerクラスは「文」を分割し、中に含まれている「単語(トークン)」を取り出すクラスである。
また、プログラムの単語、つまり型や識別子、記号等を「トークン」と言う。
コンパイルエラーのエラーメッセージに書かれている「トークン」はこの意味である。
もうひとつの意味は「証明」。
データの正当性を証明したり、正しく処理が行われているかどうかを証明するためのデータ(主に文字列)を「トークン」と言う。
たとえば、サーブレットにおいて、正しく画面遷移がなされているかを証明するためのデータを「トランザクショントークン」という。前画面で「トークン」を発行し、次画面でそのトークンが正しいかどうかを確認することで、まったく異なる画面からの遷移や、同じ画面の二重処理を防ぐことができる。
この意味の「トークン」は、イメージとしては、許された者にだけ渡される「コイン」のようなものである。「トークン」は特別な絵柄の描かれたコインで、それを見せることで普段は入れない店に入れる、というイメージである。
このふたつは同じ「token」という単語だが、基本的に意味が異なるため注意。
主に2つの意味がある。
ひとつは「文の中の単語・構成要素」。
文の中の単語や記号、数値等を「トークン」と言う。
たとえば、StringTokenizerクラスは「文」を分割し、中に含まれている「単語(トークン)」を取り出すクラスである。
また、プログラムの単語、つまり型や識別子、記号等を「トークン」と言う。
コンパイルエラーのエラーメッセージに書かれている「トークン」はこの意味である。
もうひとつの意味は「証明」。
データの正当性を証明したり、正しく処理が行われているかどうかを証明するためのデータ(主に文字列)を「トークン」と言う。
たとえば、サーブレットにおいて、正しく画面遷移がなされているかを証明するためのデータを「トランザクショントークン」という。前画面で「トークン」を発行し、次画面でそのトークンが正しいかどうかを確認することで、まったく異なる画面からの遷移や、同じ画面の二重処理を防ぐことができる。
この意味の「トークン」は、イメージとしては、許された者にだけ渡される「コイン」のようなものである。「トークン」は特別な絵柄の描かれたコインで、それを見せることで普段は入れない店に入れる、というイメージである。
このふたつは同じ「token」という単語だが、基本的に意味が異なるため注意。
参考サイト
// Sample.java
import java.util.StringTokenizer;
public class Sample
{
public static void main( String[] args )
{
// StringTokenizerクラスの場合。
{
// 文字列を分割します。
// 分割はコンストラクタで速攻行われます。
// 第1引数に対象の文字列を渡します。
// 第2引数に分割文字列を渡します。
String source = "あああ いいい ううう";
String delimiter = " ";
StringTokenizer stringTokenizer = new StringTokenizer( source, delimiter );
// もう取得する要素がないとhasMoreTokens()メソッドはfalseを返します。
while( stringTokenizer.hasMoreTokens() )
{
// 分割した各要素を取得します。
String current = stringTokenizer.nextToken();
// 出力します。
System.out.println( current );
}
// あああ
// いいい
// ううう
// 文の中の「単語」をトークンと言い、それを分割して
// 取り出すのがStringTokenizerクラスです。
}
// プログラムの「トークン」の場合。
{
// int = 100;
// コンパイルエラー:
// トークン "=" に構文エラーがあります。
// 正しくは "Identifier" です。
// これは、「=」という「トークン」がintの次に
// 来てはいけない、来るのは「識別子」のはず、
// という意味です。
// このように、プログラム内の単語を「トークン」
// と言います。
}
}
}
import java.util.StringTokenizer;
public class Sample
{
public static void main( String[] args )
{
// StringTokenizerクラスの場合。
{
// 文字列を分割します。
// 分割はコンストラクタで速攻行われます。
// 第1引数に対象の文字列を渡します。
// 第2引数に分割文字列を渡します。
String source = "あああ いいい ううう";
String delimiter = " ";
StringTokenizer stringTokenizer = new StringTokenizer( source, delimiter );
// もう取得する要素がないとhasMoreTokens()メソッドはfalseを返します。
while( stringTokenizer.hasMoreTokens() )
{
// 分割した各要素を取得します。
String current = stringTokenizer.nextToken();
// 出力します。
System.out.println( current );
}
// あああ
// いいい
// ううう
// 文の中の「単語」をトークンと言い、それを分割して
// 取り出すのがStringTokenizerクラスです。
}
// プログラムの「トークン」の場合。
{
// int = 100;
// コンパイルエラー:
// トークン "=" に構文エラーがあります。
// 正しくは "Identifier" です。
// これは、「=」という「トークン」がintの次に
// 来てはいけない、来るのは「識別子」のはず、
// という意味です。
// このように、プログラム内の単語を「トークン」
// と言います。
}
}
}
// Sample.java import java.util.StringTokenizer; public class Sample { public static void main( String[] args ) { // StringTokenizerクラスの場合。 { // 文字列を分割します。 // 分割はコンストラクタで速攻行われます。 // 第1引数に対象の文字列を渡します。 // 第2引数に分割文字列を渡します。 String source = "あああ いいい ううう"; String delimiter = " "; StringTokenizer stringTokenizer = new StringTokenizer( source, delimiter ); // もう取得する要素がないとhasMoreTokens()メソッドはfalseを返します。 while( stringTokenizer.hasMoreTokens() ) { // 分割した各要素を取得します。 String current = stringTokenizer.nextToken(); // 出力します。 System.out.println( current ); } // あああ // いいい // ううう // 文の中の「単語」をトークンと言い、それを分割して // 取り出すのがStringTokenizerクラスです。 } // プログラムの「トークン」の場合。 { // int = 100; // コンパイルエラー: // トークン "=" に構文エラーがあります。 // 正しくは "Identifier" です。 // これは、「=」という「トークン」がintの次に // 来てはいけない、来るのは「識別子」のはず、 // という意味です。 // このように、プログラム内の単語を「トークン」 // と言います。 } } }