Considering the call:
java MeuPrograma -by<usuario> -<mensagem>
You can simply use the parameters sent to the main
method:
public class ClasseQuePossuiMetodoPrincipal {
public static void main(String... args) {
System.out.println(args[0]); // Vai exibir -by<usuario>
System.out.println(args[1]); // Vai exibir -<mensagem>
}
}
Both are delivered to your application as a String
, including the special characters you have sent. To remove them and have a more friendly string , you can do this:
public class ClasseQuePossuiMetodoPrincipal {
public static void main(String... args) {
System.out.println(clear(args[0])); // Vai exibir byusuario (pode usar um String#substring para remover o 'by' no início)
System.out.println(clear(args[1])); // Vai exibir mensagem
}
private static String clear(String str){
return str.replaceAll("[^\dA-Za-z ]", "");
}
}
Suggestion for implementation
A better way to do this is by calling your Java application in the following ways:
When you want to send everyone: java MeuPrograma "Mensagem que será enviada a todos."
And when you want to send to a specific user: java MeuPrograma "Olá, como vai?" "foo"
This way, you can check the amount of arguments sent. If a single parameter is sent, we consider that the message should be delivered to all. Otherwise, sending two arguments means that the message should be sent to a specific user.
So your class could look like this:
public class ClasseQuePossuiMetodoPrincipal {
public static void main(String... args) {
//Faz aqui algum tratamento caso args.lenght seja zero.
//E verifica se args.lenght é igual a 2.
if(args.lenght == 1)
send(args[0]); // Todos
else
send(args[0], args[1]); // Envia para um usuário
}
private static void send(String message){
// Envia para todos...
}
private static void send(String message, String who){
// Envia para 'who'...
}
}
Taking advantage of the same idea, if you want to allow the user to use the application by sending the message content followed by a user list to which the message should be sent, for example:
java MeuPrograma "Mensagem para os usuários a seguir..." "joao" "mario" "carlos"
Your class could be implemented like this:
import java.util.ArrayList;
public class ClasseQuePossuiMetodoPrincipal {
public static void main(String... args) {
//Faz aqui algum tratamento para verificar se args.lenght é igual ou maior que 1.
String mensagem = args[0];
if(args.length == 1)
send(mensagem);
else {
ArrayList<String> usuarios = new ArrayList<>();
// Começando em 1 pois 0 é a mensagem, já armazenada na variável 'mensagem'
for(int i = 1; i < args.length; i++)
usuarios.add(args[i]);
send(mensagem, usuarios);
}
}
private static void send(String message){
// Envia para todos
}
private static void send(String message, ArrayList<String> sendTo){
// Envia para todos os usuários na lista 'sendTo'
}
}