2016-04-05 10 views
-1

ここはパシュトウの最初のテキストフィールドのテキストを英語の構文で受け取り、ボタンをクリックしてパシュトの構文に変換するコードです問題は、最後の変換では各行の終わりにnullを表示し、パシュトウの最後の文字も表示しないということです。 そして同じプログラムの場合は、簡単な方法があれば教えてください。Android:エラーはありませんが、行の最後にnullオプションを解決できませんでした

変換された言語

enter image description here

package aims.khan.trans; 

import java.util.HashMap; 
import java.util.Map; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 

public class MainActivity extends Activity { 

    Button btnconvert; 
    EditText txtconvertfrom, txtconvertto; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     btnconvert = (Button) findViewById(R.id.btnconvert); 
     txtconvertfrom = (EditText) findViewById(R.id.txtconvertfrom); 
     txtconvertto = (EditText) findViewById(R.id.txtconvertto); 

     btnconvert.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 

       String a = Conversion(); 
       txtconvertto.setText(a); 

      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    public String Conversion() { 
     String a = null; 
     Map<String, String> map = new HashMap<String, String>(); 
     map.put(" ", "\u0020"); 
     map.put("A", "\u0627"); 
     map.put("a", "\u0627"); 
     map.put("B", "\u0628"); 
     map.put("b", "\u0628"); 
     // map.put("C" , "\u0686"); 
     // map.put("c" , "\u0686"); 
     map.put("CH", "\u0686"); 
     map.put("ch", "\u0686"); 
     map.put("D", "\u062F"); 
     map.put("d", "\u062F"); 
     map.put("E", "\u064A"); 
     map.put("e", "\u064A"); 
     map.put("F", "\u0641"); 
     map.put("f", "\u0641"); 
     map.put("G", "\u06AB"); 
     map.put("g", "\u06AB"); 
     map.put("H", "\u062D"); 
     map.put("h", "\u062D"); 
     map.put("I", "\u064A"); 
     map.put("i", "\u064A"); 
     map.put("J", "\u062C"); 
     map.put("j", "\u062C"); 
     map.put("K", "\u0643"); 
     map.put("k", "\u0643"); 
     map.put("L", "\u0644"); 
     map.put("l", "\u0644"); 
     map.put("M", "\u0645"); 
     map.put("m", "\u0645"); 
     map.put("N", "\u0646"); 
     map.put("n", "\u0646"); 
     map.put("O", "\u0648"); 
     map.put("o", "\u0648"); 
     map.put("P", "\u0628"); 
     map.put("p", "\u0628"); 
     map.put("Q", "\u0642"); 
     map.put("q", "\u0642"); 
     map.put("R", "\u0631"); 
     map.put("r", "\u0631"); 
     map.put("S", "\u0633"); 
     map.put("s", "\u0633"); 
     map.put("sh", "\u0634"); 
     map.put("T", "\u062A"); 
     map.put("t", "\u062A"); 
     map.put("U", "\u0648"); 
     map.put("u", "\u0648"); 
     map.put("V", "\u0648"); 
     map.put("v", "\u0648"); 
     map.put("W", "\u0648"); 
     map.put("w", "\u0648"); 
     map.put("X", "\u0633"); 
     map.put("x", "\u0633"); 
     map.put("Y", "\u064A"); 
     map.put("y", "\u064A"); 
     map.put("Z", "\u0632"); 
     map.put("z", "\u0632"); 
     map.put("TH", "\u062A"); 
     map.put("th", "\u062A"); 
     String convert = txtconvertfrom.getText().toString(); 
     char[] convert2 = convert.toCharArray(); 

     if (convert2.length <= 1) { 

      a += map.get(String.valueOf(convert2)); 
     } else { 
      for (int i = 0; i < convert2.length - 1; i++) { 

       switch (convert2[i]) { 
       case 'c': 
        switch (convert2[i + 1]) { 
        case 'h': 
         a += map.get(String.valueOf("ch")); 
         i++; 
         continue; 
        case 'k': 
         a += map.get(String.valueOf("k")); 
         i++; 
         continue; 

        default: 
         break; 
        } 
       case 's': 
        switch (convert2[i + 1]) { 
        case 'h': 
         a += map.get(String.valueOf("sh")); 
         i++; 
         continue; 

        default: 
         break; 
        } 
       default: 
        a += map.get(String.valueOf(convert2[i])); 
        break; 
       } 

      } 
     } 
     return a; 
    } 
} 
+0

を試してみてください。**マップを宣言するのに十分である**メンバー(=グローバル)変数 'のstatic final地図<文字列、文字列>マップ=新しいHashMapの<文字列、文字列>として();を実行し、それを一度初期化します。 onCreate()で – 0X0nosugar

+0

サミュムありがとう私はそれをしました –

答えて

0

String = NULL;

String = "" へ

変更。

とパフォーマンスを向上させるために

+0

ありがとう、それは働いた –

関連する問題