2016-04-01 12 views
1

それは名前、電子メールID、ログイン名のようないくつかのフィールドをログインしているWebアプリケーションですが、テキストの前に電子メールID @を入力すると、自動的にログイン名のテキストボックスに表示されます。私は電子メールID分割を入力すると、このような別のテキストボックス別の名前を表示する場合:どのように私は電子メールのIDを分割し、asp.netの別のテキストボックスに@の前にテキストを表示することができます#

String str= txtemailid.Text; 
String[] name=str.split('@'); 
txtloginname.Text=name[0].Tostring(); 

私はこのコードを試みたが、動作していないこの

eamil id: [email protected] 
login name: xyz 

のように表示したいです

誰でも助けてもらうことができます

答えて

0
string email = "[email protected]"; 
var name = email.Split('@')[0]; 

これは機能しますが、splitは大文字のSで呼び出されます。C#では大文字と小文字が区別されます。

+0

私はその電子メールIDテキストボックスイベントまたはログイン名テキストボックスイベントのテキストボックスイベントでそれを取る必要があります。 –

+0

これはWebアプリケーションの場合、基本的に2つのオプションが残っています。JavaScriptでこれを行い、いくつかのchanged()イベントに反応することができます。あなたはフォームを提出し、上記の例のようにC#でチェックします。しかし、これは元のものとはまったく異なる問題です。あなたが答えに満足している場合は、チェックマークをクリックしてください:) –

+0

偉大な示唆: "チェックマークをクリックしてください:" http://meta.stackexchange.com/questions/14994/do-you-feel-dirty-もしあなたがあなたのことを知っていれば、新しいユーザはあなたの答えを受け入れるでしょう –

2

ここで動作しますexample;分割後の配列の長さは、入力が誤って入力される可能性があり、無効な入力があった場合に例外につながる可能性があるため、チェックする方が良いです。

string str= "[email protected]"; 
string[] name=str.Split('@'); 
if (name.Length > 1) 
{ 
    Console.WriteLine("login name:{0}", name[0]); 
    Console.WriteLine("login Domain:{0}", name[1]); 
} 

私はあなたのコードをコンパイルしていません。それは多くのエラーを持っているからです。

split().Split()Sです。 Tostring()ToString()ここでもSは大文字です。 nameは文字列配列なので、.ToString()は不要です。そしてもう1つC#String and string are Differentの事;変数を宣言するにはstringを使用してください。

1
var email = "[email protected]"; 
var name = email.Substring(0, email.IndexOf('@')); 
Console.WriteLine(name); 

単純に配列のインデックスがありません。

0

大文字の "S"に変更する必要があるのは、2つの単語(分割と文字列)です。あなたがそれを行うと、あなたのコードは動作します:

String str = txtemailid.Text; 
String[] name = str.Split('@'); 
txtloginname.Text = name[0].ToString(); 
関連する問題