JAVAコードトレーニング(その4)
2150 ワード
日语:この间、Pythonの开発に専念していましたが、JAVAのコードは忘れてしまいました.だからいくつかのテーマを探して訓練しました.
E-version:so a long time I major in python dev. many aspects about java almost forget.so now I found some problems to practice.
問題:
AS-LIKE各単語は26文字の大文字または小文字の英字で構成され、'-'は単語コネクタとして使用される場合、単語の一部とみなされるが、1つの単語の中で1回しか連続できず、2つの'-'以上が連続して現れる場合、「aa--bb」の「-」はセパレータとみなされ、2つの単語は「aa」と「bb」とみなされ、単語を構成しない文字は、単語間隔記号とみなされます.反転後の単語間隔をスペースで表す必要があります.元の文字列に隣接する単語間に複数の間隔がある場合、反転変換後に1つのスペース間隔のみが表示されます.単語ごとに最長20文字です.
インプリメンテーション
IMPL
E-version:so a long time I major in python dev. many aspects about java almost forget.so now I found some problems to practice.
問題:
AS-LIKE
String pInput = "I am a - student";
String pResult = "student a am I";
インプリメンテーション
IMPL
public int converse(String pInput, StringBuffer pOutput) {
String[] strs = pInput.split(" ");
for (int i = strs.length - 1; i >= 0; i--) {
strs[i] = wordmod(strs[i]);
if (strs[i].indexOf("--") == 1) {
System.out.println(strs[i]);
String[] r = strs[i].split("--");
strs[i] = "";
for (int j = r.length - 1; j >= 0; j--) {
if (j == 0) {
strs[i] += r[j];
} else
strs[i] += r[j] + " ";
}
}
if (strs[i] == "") {
continue;
} else {
if (i == 0) {
pOutput.append(wordmod(strs[i]));
} else {
pOutput.append(wordmod(strs[i]) + " ");
}
}
}
pOutput.trimToSize();
return 0;
}
private String wordmod(String str) {
if (str.length() == 1 && str.charAt(0) == '-') {
return "";
}
String n_Str = "";
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z' || str.charAt(i) >= 'A' && str.charAt(i) <= 'Z'
|| str.charAt(i) == '-' || str.charAt(i) == ' ') {
n_Str += str.charAt(i);
} else {
continue;
}
}
if (n_Str.length() >= 2) {
if (n_Str.charAt(0) == '-') {
n_Str = n_Str.substring(1);
}
if (n_Str.charAt(n_Str.length() - 1) == '-') {
n_Str = n_Str.substring(0, n_Str.length() - 1);
}
}
return n_Str;
}