java程序中的对角线和直线绘制
在下面的程序中,您可以看到,我允许用户输入一个方向,例如n100,它将向北绘制一条直线,并将其移动100个空间,但是我如何允许草图程序绘制对角线和直线,我知道我能够将输入更改为(0,2)允许使用像ne这样的东西来画对角线,但是我的程序不喜欢使用方向,比如n,e,s,w。 我可以做什么来允许这两条线? 代码如下: 如果你使用java程序中的对角线和直线绘制,java,input,Java,Input,在下面的程序中,您可以看到,我允许用户输入一个方向,例如n100,它将向北绘制一条直线,并将其移动100个空间,但是我如何允许草图程序绘制对角线和直线,我知道我能够将输入更改为(0,2)允许使用像ne这样的东西来画对角线,但是我的程序不喜欢使用方向,比如n,e,s,w。 我可以做什么来允许这两条线? 代码如下: 如果你使用 String direction = input.substring(0, 1); String distance = input.substring(1); 您只存储和
String direction = input.substring(0, 1);
String distance = input.substring(1);
您只存储和比较字符串的第一个字符,并最终为距离指定一个无效的数字,就好像方向是对角的,第二个字符在方向的前面。用于检查给定的方向。在if语句中,确定距离是从第二个字符开始还是从第三个字符开始。您也可以将输入用作检查的值
...
String distance ;
double distanceAsDouble = 0;
if (input.startsWith("n")) {
t.heading(0);
distance = input.substring(1);
} else if (input.startsWith("ne")) {
t.heading(45);
distance = input.substring(2);
} else if ...
正则表达式的意思是
匹配非数字\\D
匹配数字\\d
- 0或更多的后缀
*
用于任何字符- ^开始
- $end
- ()从1开始编号的组
- $1第1组
if-else
语句
...
String distance ;
double distanceAsDouble = 0;
if (input.startsWith("n")) {
t.heading(0);
distance = input.substring(1);
} else if (input.startsWith("ne")) {
t.heading(45);
distance = input.substring(2);
} else if ...
String direction = input.replaceFirst("^(\\D*)(.*)$", "$1");
String distance = input.replaceFirst("^(\\D*)(.*)$", "$2").trim();