Java 河内爪哇塔将数字转换为字符串
河内的Java Tower将数字循环结果转换为字符串结果 如何使打印语句变成字母而不是数字,打印是这样的 1 | |Java 河内爪哇塔将数字转换为字符串,java,Java,河内的Java Tower将数字循环结果转换为字符串结果 如何使打印语句变成字母而不是数字,打印是这样的 1 | | 2 | | 3|| 我想换成这样的字母 a | | b | | c|| 每次打印d1、d2和d3时,我都会尝试使用if-else,但d1、d2和d3没有1、2和3的值,因此我无法使用条件语句将di值更改为字符串 你能帮我解决这个问题吗 import java.util.*; /* Class TowerOfHanoiUsingStacks */
2 | |
3|| 我想换成这样的字母 a | |
b | |
c|| 每次打印d1、d2和d3时,我都会尝试使用if-else,但d1、d2和d3没有1、2和3的值,因此我无法使用条件语句将di值更改为字符串 你能帮我解决这个问题吗
import java.util.*;
/* Class TowerOfHanoiUsingStacks */
public class HelloWorld
{
public static int N;
/* Creating Stack array */
public static Stack<Integer>[] tower = new Stack[4];
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
tower[1] = new Stack<Integer>();
tower[2] = new Stack<Integer>();
tower[3] = new Stack<Integer>();
/* Accepting number of disks */
System.out.println("Enter number of disks");
int num = scan.nextInt();
N = num;
toh(num);
}
/* Function to push disks into stack */
public static void toh(int n)
{
for (int d = n; d > 0; d--)
tower[1].push(d);
display();
move(n, 1, 2, 3);
}
/* Recursive Function to move disks */
public static void move(int n, int a, int b, int c)
{
if (n > 0)
{
move(n-1, a, c, b);
int d = tower[a].pop();
tower[c].push(d);
display();
move(n-1, b, a, c);
}
}
/* Function to display */
public static void display()
{
System.out.println(" A | B | C");
System.out.println("---------------");
for(int i = N - 1; i >= 0; i--)
{
String d1 = " ", d2 = " ", d3 = " ";
try
{
d1 = String.valueOf(tower[1].get(i));
}
catch (Exception e){
}
try
{
d2 = String.valueOf(tower[2].get(i));
}
catch(Exception e){
}
try
{
d3 = String.valueOf(tower[3].get(i));
}
catch (Exception e){
}
System.out.println(" "+d1+" | "+d2+" | "+d3);
}
System.out.println("\n");
}
}
import java.util.*;
/*类风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔风塔*/
公共类HelloWorld
{
公共静态int N;
/*创建堆栈数组*/
公共静态堆栈[]塔=新堆栈[4];
公共静态void main(字符串[]args)
{
扫描仪扫描=新扫描仪(System.in);
塔[1]=新堆栈();
塔[2]=新堆栈();
塔[3]=新堆栈();
/*接受磁盘数*/
System.out.println(“输入磁盘数”);
int num=scan.nextInt();
N=num;
toh(num);
}
/*函数将磁盘推入堆栈*/
公共静态无效至(整数n)
{
对于(int d=n;d>0;d--)
塔[1]。推力(d);
显示();
移动(n,1,2,3);
}
/*移动磁盘的递归函数*/
公共静态无效移动(int n,int a,int b,int c)
{
如果(n>0)
{
移动(n-1,a,c,b);
int d=塔[a].pop();
塔[c]。推力(d);
显示();
移动(n-1,b,a,c);
}
}
/*显示功能*/
公共静态无效显示()
{
System.out.println(“A | B | C”);
System.out.println(“--------------”;
对于(int i=N-1;i>=0;i--)
{
字符串d1=“”,d2=“”,d3=“”;
尝试
{
d1=String.valueOf(塔[1].get(i));
}
捕获(例外e){
}
尝试
{
d2=String.valueOf(塔[2].get(i));
}
捕获(例外e){
}
尝试
{
d3=String.valueOf(塔[3].get(i));
}
捕获(例外e){
}
系统输出打印项数(“+d1+”|“+d2+”|“+d3”);
}
System.out.println(“\n”);
}
}
如果您只想打印字母而不是数字,请将值转换为char
String.valueOf((char)(塔[1].get(i)+97))
您可能想改用
96
,因为我相信您正在使用1
作为第一个索引。如果不处理异常,就永远不会捕获异常。它的工作感谢您的欢迎。请花点时间仔细阅读,以便更好地阐述您的问题,以便下次使用。此外,如果答案解决了您的问题,请将其标记为已接受,这样问题就不再显示为未回答。