-1
ここはパシュトウの最初のテキストフィールドのテキストを英語の構文で受け取り、ボタンをクリックしてパシュトの構文に変換するコードです問題は、最後の変換では各行の終わりにnullを表示し、パシュトウの最後の文字も表示しないということです。 そして同じプログラムの場合は、簡単な方法があれば教えてください。Android:エラーはありませんが、行の最後にnullオプションを解決できませんでした
変換された言語
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;
}
}
を試してみてください。**マップを宣言するのに十分である**メンバー(=グローバル)変数 'のstatic final地図<文字列、文字列>マップ=新しいHashMapの<文字列、文字列>として();を実行し、それを一度初期化します。 onCreate()で – 0X0nosugar
サミュムありがとう私はそれをしました –