Примечание: Я должен использовать StringTokenizer для этой программы (это для назначения)Как я могу заставить StringTokenizer правильно заменить письмо?
Я пытаюсь получить эту строку «Программирование на Java.» сказать «J @ v @ ~~~ Progr @ mming». с помощью StringTokenizer.
У меня есть 2 проблемы со следующим кодом ...
- Мой первый StringTokenizer показывает, что мне нужно на консоли, но добавляет ненужный дополнительный «@» в конце.
- Он не захватывает мой токен, поскольку это «J @ v @ Progr @ mming». применить второй StringTokenizer, который добавит «~~~», где есть пробел.
Что мне не хватает? Я просмотрел документы API Java и не мог понять.
import java.util.StringTokenizer;
public class StringToken {
private String token;
//Constructor with default text
public StringToken() {
token = "Java Programming.";
}
//Constructor with custom text
public StringToken(String newToken) {
token = newToken;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String encodeTokenA(String newToken){
StringTokenizer st = new StringTokenizer(newToken, "a");
while (st.hasMoreTokens()){
String token = st.nextToken();
System.out.format(token + "@");
}
return token;
}
public String encodeTokenB(String newToken){
StringTokenizer st = new StringTokenizer(newToken, " ");
while (st.hasMoreTokens()){
String token = st.nextToken();
System.out.format(token + "~~~");
}
return token;
}
}
public class TestStringToken {
public static void main(String[] args) {
StringToken test = new StringToken();
test.encodeTokenA(test.getToken());
test.encodeTokenB(test.getToken());
System.out.println(test.getToken());
}
}
[StringTokenizer] (http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html) является [унаследованным классом] (http://stackoverflow.com/ а/6983908/1393766). Почему бы просто не использовать методы String, такие как «Java-программирование» .replace («", "~~~"). Replace ('a', '@') '? – Pshemo
Почему вы используете stringtokenizer? Я не вижу в этом необходимости. Вы могли бы просто использовать .replace ('a', '@') –
Хотелось бы, чтобы я мог использовать что-то еще, но это для назначения, и нам НЕОБХОДИМО использовать StringTokenizer. –