[Java] Je veux faciliter les choses car il est difficile d'entrer System.out.println

introduction

Lors de l'écriture d'un Janken RPG en Java, écrire `` System.out.println '' à chaque fois était assez compliqué, alors j'ai essayé de trouver comment le rendre plus facile.

Je pense que ce sera plus facile avec des fonctions étendues, mais cette fois je vais essayer dans une direction différente.

** Le flux général est **

--Créer une méthode pour la sortie de la console

Le sujet principal d'ici

Dans l'explication, j'essaierai de m'appliquer à une seule des trois classes.

Code jusqu'à présent

Judge.java


public class Judge {
	
	public void startJanken(Player player1, Player player2) {
		
		System.out.println("[Démarrer Janken]\n");
		
		for (int cnt = 0;cnt < 3; cnt++) {
			System.out.println("["+(cnt+1)+"Rond]");
			
			//Déterminez lequel a gagné
			Player winner = judgeJanken(player1,player2);
			
			if(winner != null) {
				System.out.println("\n"+winner.getName()+"A gagné");
				winner.notifyResult(true);
			}else {
				System.out.println("C'est un tirage au sort");
			}
		}
		System.out.println("Fin de Janken");
		
		Player finalWinner = judgeFinalWinner(player1,player2);
		System.out.print(player1.getWinCount()+"contre"+player2.getWinCount()+"alors");
		
		if (finalWinner != null) {
			System.out.println(finalWinner.getName()+"Est le gagnant");
		}else {
			System.out.println("C'est un tirage au sort");
		}
		
		
	}
	private Player judgeJanken(Player player1,Player player2) {
		Player winner = null;
		
		int player1hand = player1.showHand();
		int player2hand = player2.showHand();
		
		printHand(player1hand);
		System.out.print("vs.");
		printHand(player2hand);
		System.out.print("\n");
		
		if((player1hand == Player.stone && player2hand == Player.scissors)||
				(player1hand == Player.scissors && player2hand == Player.paper)||
				(player1hand == Player.paper && player2hand == Player.stone)) {
			winner = player1;
		}else if((player1hand == Player.stone && player2hand == Player.paper)||
				(player1hand == Player.scissors && player2hand == Player.stone)||
				(player1hand == Player.paper && player2hand == Player.scissors)) {
			winner = player2;
		}
		return winner;
	}
	private Player judgeFinalWinner(Player player1,Player player2) {
		Player winner = null;
		
		int player1WinCount = player1.getWinCount();
		int player2WinCount = player2.getWinCount();
		
		
		if(player1WinCount > player2WinCount) {
			winner = player1;
			
		}else if(player1WinCount < player2WinCount) {
			winner = player2;
			
		}
		return winner;
	}
	
	private void printHand(int hand) {
		
		switch(hand) {
		case Player.stone:
		System.out.print("Goo");
		break;
		
		case Player.scissors:
		System.out.print("Choki");
		break;
		
		case Player.paper:
		System.out.print("Par");
		break;
		
		default:
		break;
		}
	}

}

Essayez d'ajouter une méthode comme celle ci-dessous

       //ici! !! !!
	public static void put(String str) {
		System.out.println(str);
	}

Ensuite, au lieu de taper System.out.println '', je ne pouvais faire que put```

Judge.java


public class Judge {
	
	public void startJanken(Player player1, Player player2) {
		
		put("[Démarrer Janken]\n");
		
		for (int cnt = 0;cnt < 3; cnt++) {
			put("["+(cnt+1)+"Rond]");
			
			//Déterminez lequel a gagné
			Player winner = judgeJanken(player1,player2);
			
			if(winner != null) {
				put("\n"+winner.getName()+"A gagné");
				winner.notifyResult(true);
			}else {
				put("C'est un tirage au sort");
			}
		}
		put("Fin de Janken");
		
		Player finalWinner = judgeFinalWinner(player1,player2);
		System.out.print(player1.getWinCount()+"contre"+player2.getWinCount()+"alors");
		
		if (finalWinner != null) {
			put(finalWinner.getName()+"Est le gagnant");
		}else {
			put("C'est un tirage au sort");
		}
		
		
	}
	private Player judgeJanken(Player player1,Player player2) {
		Player winner = null;
		
		int player1hand = player1.showHand();
		int player2hand = player2.showHand();
		
		printHand(player1hand);
		System.out.print("vs.");
		printHand(player2hand);
		System.out.print("\n");
		
		if((player1hand == Player.stone && player2hand == Player.scissors)||
				(player1hand == Player.scissors && player2hand == Player.paper)||
				(player1hand == Player.paper && player2hand == Player.stone)) {
			winner = player1;
		}else if((player1hand == Player.stone && player2hand == Player.paper)||
				(player1hand == Player.scissors && player2hand == Player.stone)||
				(player1hand == Player.paper && player2hand == Player.scissors)) {
			winner = player2;
		}
		return winner;
	}
	private Player judgeFinalWinner(Player player1,Player player2) {
		Player winner = null;
		
		int player1WinCount = player1.getWinCount();
		int player2WinCount = player2.getWinCount();
		
		
		if(player1WinCount > player2WinCount) {
			winner = player1;
			
		}else if(player1WinCount < player2WinCount) {
			winner = player2;
			
		}
		return winner;
	}
	
	private void printHand(int hand) {
		
		switch(hand) {
		case Player.stone:
		System.out.print("Goo");
		break;
		
		case Player.scissors:
		System.out.print("Choki");
		break;
		
		case Player.paper:
		System.out.print("Par");
		break;
		
		default:
		break;
		}
	}

       //ici! !! !!
	public static void put(String str) {
		System.out.println(str);
	}
}


C'est une méthode, donc ça peut être un peu gênant lors du passage des classes, mais c'est beaucoup plus facile lol

À propos du remplacement

Dans mon cas, je le savais en chemin, j'ai donc dû réécrire tout ce que j'avais écrit jusqu'à présent pour `` mettre ''.

J'étudiais juste Linux, alors essayez d'utiliser la commande sed`

Syntaxe de base de la commande sed

~$ sed -e s/Caractère avant le remplacement/Caractère remplacé/g [nom de fichier]

―― «-e» peut être présent ou non --Si g n'est pas entré, remplacez uniquement le premier caractère

Il y a diverses choses comme, mais je les omettrai ici.

Maintenant, remplacez-le au terminal!

tarminal.



~$ sed -e s/System.out.println/put/g Judge.java 

public class Judge {
	
	public void startJanken(Player player1, Player player2) {
		
		put("[Démarrer Janken]\n");
		
		for (int cnt = 0;cnt < 3; cnt++) {
			put("["+(cnt+1)+"Rond]");
			
			//Déterminez lequel a gagné
			Player winner = judgeJanken(player1,player2);
			
			if(winner != null) {
				put("\n"+winner.getName()+"A gagné");
				winner.notifyResult(true);
			}else {
				put("C'est un tirage au sort");
			}
		}
		put("Fin de Janken");
		
		Player finalWinner = judgeFinalWinner(player1,player2);

		:
                :
                :
                :

	public static void put(String str) {
		put(str);
	}
}

Vérifiez le dossier

tarminal.


~$ cat Judge.java 

public class Judge {
	
	public void startJanken(Player player1, Player player2) {
		
		System.out.println("[Démarrer Janken]\n");
		
		for (int cnt = 0;cnt < 3; cnt++) {
			System.out.println("["+(cnt+1)+"Rond]");
			
			//Déterminez lequel a gagné
			Player winner = judgeJanken(player1,player2);
			
			if(winner != null) {
				System.out.println("\n"+winner.getName()+"A gagné");
				winner.notifyResult(true);
			}else {
				System.out.println("C'est un tirage au sort");
			}
		}
		System.out.println("Fin de Janken");
		
		Player finalWinner = judgeFinalWinner(player1,player2);

		:
                :
                :
                :

	public static void put(String str) {
		System.out.println(str);
	}
}

Je pensais que le remplacement était terminé ici, mais quand je l'ai vérifié avec l'éditeur, il n'a pas été remplacé. ..

Quand je l'ai regardé ici, la commande sed n'était visible que dans l'aperçu et n'était pas réellement reflétée.

Je veux que vous le reflétiez, donc si vous le cherchez Facultatif `` -i '' (reflété directement dans le fichier)

Alors je vais réessayer

~$ sed -i -e s/System.out.println/put/g Judge.java





#### **`tarminal.`**

~$ cat Judge.java public class Judge {

public void startJanken(Player player1, Player player2) {
	
	put("[Démarrer Janken]\n");
	
	for (int cnt = 0;cnt < 3; cnt++) {
		put("["+(cnt+1)+"Rond]");
		
		//Déterminez lequel a gagné
		Player winner = judgeJanken(player1,player2);
		
		if(winner != null) {
			put("\n"+winner.getName()+"A gagné");
			winner.notifyResult(true);
		}else {
			put("C'est un tirage au sort");
		}
	}
	put("Fin de Janken");
	
	Player finalWinner = judgeFinalWinner(player1,player2);

	:
            :
            :
            :

public static void put(String str) {
	put(str);
}

}


 Cela se reflète fermement.


 Après cela, la méthode a également été remplacée, alors je me demande si je devrais la réparer.


### résultat
 C'est devenu plus facile (^ ∀ ^)


Recommended Posts

[Java] Je veux faciliter les choses car il est difficile d'entrer System.out.println
Je voudrais résumer Apache Wicket 8 car c'est une bonne idée
Je veux faire une liste avec kotlin et java!
Je veux créer une fonction avec kotlin et java!
[Java] Je souhaite tester l'entrée standard et la sortie standard avec JUnit
Si vous souhaitez transformer une application Java en une image Docker, il est pratique d'utiliser jib.
Je veux rendre le cadre de la zone de texte rouge lorsqu'il y a une erreur de saisie
Je veux créer une application ios.android
[Java] Les débutants veulent faire des rencontres. 1er
Je veux arrêter complètement les mises à jour Java
Définition d'un alias car il est difficile de saisir "docker-compose" à chaque fois
Exécuter R à partir de Java Je veux exécuter rJava
Je souhaite envoyer un e-mail en Java.
Je l'ai fait en Java pour toujours rendre (a == 1 && a == 2 && a == 3) vrai
Je veux utiliser java8 forEach avec index
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
rsync4j --Je veux toucher rsync en Java.
Je veux écrire rapidement de java vers sqlite
[Android] Je veux faciliter le contrôle qualité ... C'est vrai! Faisons un menu de débogage!
Je souhaite l'implémenter en plus lors de l'utilisation de kotlin sur un site exécutant Java
Je veux faire quelque chose comme "cls" en Java
Je veux aussi utiliser ES2015 avec Java! → (´ ・ ω ・ `)
J'ai utilisé jnr-ffi (facilité d'utilisation, etc.)
Je veux faire des transitions d'écran avec kotlin et java!
J'avais l'habitude de faire nc (netcat) avec JAVA normalement
Je veux savoir quelle version de java le fichier jar que j'ai est disponible
Je veux renvoyer un type différent de l'élément d'entrée avec Java8 StreamAPI Reduce ()
[Java] Je souhaite convertir un tableau d'octets en un nombre hexadécimal
Je souhaite créer une applet Java sans utiliser d'IDE
Je souhaite créer un modèle spécifique d'ActiveRecord ReadOnly
Rendre Docker déroutant avec Pokemon et le rendre plus facile à attacher
Je voulais juste créer une propriété réactive en Java
Je souhaite utiliser l'API Java 8 DateTime lentement (maintenant)
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
J'ai créé un client RESAS-API en Java
Je veux implémenter diverses fonctions avec kotlin et java!
Je souhaite renvoyer plusieurs valeurs de retour pour l'argument saisi
Je souhaite simplifier l'instruction if-else de la branche conditionnelle en Java
Java - Comment créer JTable
Je veux convertir des caractères ...
[Java] Rendez-le constant
Entrée dans la console Java
Est-il possible de générer automatiquement Getter / Setter avec l'interface Java?
Je veux créer un bouton avec un saut de ligne avec link_to [Note]
Je veux juste écrire Java en utilisant Eclipse sur mon Mac
Je veux revenir à l'écran précédent avec kotlin et java!
J'ai essayé de créer une application Android avec MVC maintenant (Java)
Je veux limiter l'entrée en réduisant la plage de nombres
Je voulais faciliter la programmation JavaFX avec Spring Framework
J'ai essayé d'en faire une URL arbitraire en utilisant l'imbrication de routage
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
[Note] Java: est-il nécessaire de remplacer les égaux pour le jugement d'égalité?
[Java] Je veux effectuer distinctement avec la clé dans l'objet
J'ai essayé de faire un Numeron qui n'est pas bon avec Ruby