Java 我试图使用Scanner with.charAt()从单个字符串获取字符输入
我在试着做一个骰子辊,它可以接受一次输入,并且可以将一个有一定数量边的骰子滚动一定次数。所以,如果我输入“2d4”,它会滚动一个4面模具2次,并分别给出两个结果。为了做到这一点,我一直在尝试使用scanner类,因为我对编程相当陌生。我试着一步一步地去做,用我所知道的。我确信有更好的类可以使用,但我正试图用scanner来做这件事Java 我试图使用Scanner with.charAt()从单个字符串获取字符输入,java,java.util.scanner,dice,Java,Java.util.scanner,Dice,我在试着做一个骰子辊,它可以接受一次输入,并且可以将一个有一定数量边的骰子滚动一定次数。所以,如果我输入“2d4”,它会滚动一个4面模具2次,并分别给出两个结果。为了做到这一点,我一直在尝试使用scanner类,因为我对编程相当陌生。我试着一步一步地去做,用我所知道的。我确信有更好的类可以使用,但我正试图用scanner来做这件事 import java.util.Scanner; import java.util.Random; public class DiceRoller3 { p
import java.util.Scanner;
import java.util.Random;
public class DiceRoller3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Random Random = new Random();
char NumberOfDice = input.next().charAt(0);
char DieType = input.next().charAt(2);
我相信这会导致我不得不创建两个输入,因为它会搜索“下一个”输入以在中查找角色。我想用一个输入就可以做到这一点,有办法吗?试试这个
扫描仪输入=新扫描仪(System.in);
随机=新随机()
每次为扫描仪调用next()时,请注意从输入流中读取下一个字符串值。
当然,如何输入数据取决于您,但您也可以单独输入,即
2
d
4
而不是
2d4
在这种情况下,您可以这样读:
char numberOfDice = input.next().charAt(0);
char die = input.next().charAt(0);
char dieType = input.next().charAt(0);
您可以使用Scanner类的nextLine方法
String userInput = input.nextLine();
char noOfDie = userInput.charAt(0);
char dieType = userInput.charAt(2);
该方法返回用户输入的完整行的字符串。
工作原理是输入并按enter键。我不是java爱好者,但如果格式始终是数字d,您可以这样做
Scanner input = new Scanner(System.in);
String myinput= input.nextLine();
int NumberOfDice=Character.getNumericValue(myinput.charAt(0));
int DieType= Character.getNumericValue(myinput.charAt(2));
编辑:这是更好的,如果你的骰子数可以超过9
int NumberOfDice=Integer.parseInt(myinput.substring(0,String.IndexOf("d")));
int DieType =Integer.parseInt(myinput.substring(String.IndexOf("d")+1)));
您可能希望一次获取整个字符串,找到
d
的位置,然后获取其左右部分:
Scanner input = new Scanner(System.in);
String string = input.nextLine();
int indexOfD = string.indexOf('d');
String numberOfDice = string.substring(0, indexOfD);
String dieType = string.substring(indexOfD + 1, string.length());
System.out.println(numberOfDice);
System.out.println(dieType);
或者,也可以使用d
作为分隔符拆分字符串:
String[] parts = string.split("d");
String numberOfDice = parts[0];
String dieType = parts[1];
要仅使用一个输入,请将输入保存到
字符串变量中,然后对该字符串执行charAt()
操作。请注意,根据java变量中的标准命名约定,名称应以小写字母开头。我会记住这一点。非常感谢,这比我想象的要简单得多。
String[] parts = string.split("d");
String numberOfDice = parts[0];
String dieType = parts[1];