【发布时间】:2019-05-26 22:53:03
【问题描述】:
我有一个代码 sn-p(参见下面的 sn-p),它生成如下数组:[0, 3, 1, -2, 0, -1, 1, 1, -2]。这里的 int 数字代表从一个位置到另一个位置的运动。我想将数值转换为表示从 0 开始的方向的文本。正数表示向东的步数 - 所以数字 3 将被翻译成“eee”,数字二是“ee”等等。负值表示相反的直接向西的步骤,因此 -2 将显示为 ww,依此类推。任何运动都不应表示为 0。
我对这一切都很陌生,不确定如何从数组中获取值并将它们转换为如上所述的指令。
下面的代码显示了整数数组是如何生成的——从上一个位置减去下一个位置以获得它们之间的步数。
int [] differenceX = new int [noOfRecordsX];
differenceX [0] = 0;
for( int i=0; i < noOfRecordsX -1 ;i++)
{
differenceX [i+1]= inputX [i+1] - inputX[i];
}
从这里我想生成描述各个方向的步骤的文本,以便这个数组:
[0, 3, 1, -2, 0, -1, 1, 1, -2]
将被转换成这个字符串:
0,eee,e,ww,0,w,e,e,ww
【问题讨论】:
-
“differenceX”是您所指的产生输出“[0, 3, 1, -2, 0, -1, 1, 1, -2]”的数组吗?换句话说,您想将 "[0, 3, 1, -2, 0, -1, 1, 1, -2]" 翻译成一个字符串,看起来像 "0,eee,e,ww,0,w, e,e,ww”?
-
据我了解,源数组包含 POSITIONS,我们必须输出它们之间的 MOVEMENTS。 Barns 了解您已经在数组中进行了移动,并希望将它们转换为字符串。解释得更好。
-
@Gangnus :: 我觉得不错!!
-
@Barns 在我的版本之后,确实如此。按类型描述任务中的输入值是一个概念错误。它们应该被定义,而不是通过表示(实际上这不是任务设置者的业务),而是通过它们的角色
-
数组生成器是错误的 - 它永远不会填补差异X[0]