所以我的主要目标是: 写一行代码,使我能够保存一定数量的字符(本例中是我试过的5个)以及如何将它们显示为输出,这是我目前所处的位置:
public class TryingCharArrays
{
public static void main(String[]args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Write 5 characters / symbols: ");
char[] simbolet = new char[5];
simbolet = sc.nextChar(); // obvsiously this does not work 'sc.nextChar(); ' however I have no idea on how to write it correctly
simbolet.toString();
System.out.println(Arrays.toString(simbolet));
}
}
我知道定义char数组的第一行是正确的(至少据我所知):
char[] simbolet2 = new char[5];
但是我不知道如何在数组中获取用户输入和存储,我也不能做nextChar(); ti将它们显示为输出。
所以会喜欢一些帮助/提示。 提前致谢
答案 0 :(得分:0)
您可以从Scanner.next获取第一个字符:
char c = reader.next().charAt(0);
只使用一个可以使用的角色:
char c = reader.findInLine(".").charAt(0);
严格使用您可以使用的一个字符:
char c = reader.next(".").charAt(0);
所以你可以像这样转换你的代码: -
Scanner sc = new Scanner(System.in);
System.out.println("Write 5 characters / symbols: ");
char[] simbolet = new char[5];
simbolet[0] = (char)sc.next().charAt(0);
simbolet[1] = (char)sc.next().charAt(0);
simbolet[2] = (char)sc.next().charAt(0);
simbolet[3] = (char)sc.next().charAt(0);
simbolet[4] = (char)sc.next().charAt(0);
simbolet.toString();
System.out.println(Arrays.toString(simbolet));
答案 1 :(得分:0)
您可以将整个输入读作字符串并将其转换为toCharArray()
在你的情况下,我会将输入作为String读取,然后将其转换为数组。在这种情况下,您不需要任何循环。
顺便说一下,行simbolet.toString();
没有用,因为toString()
方法返回一个新的String,并且不会将simbolet
中存储的原始字符串转换为字符串。
更新
如果你想实现填充数组的5个字符,我不明白为什么你要求输出中有3个字符......但是没关系。
您可以通过两种方式完成此操作。一次是将整个字符串读取为一次并将其转换为字符数组:
Scanner sc = new Scanner(System.in);
System.out.println("Shkruani 3 karaktere / simbole: ");
char[] simbolet = sc.nextLine().toCharArray();
在这种情况下,simbolet
数组的长度取决于输入的长度。它可以更短,等于或长于5个字符。如果用户提供的输入较少,您可以添加验证并重复请求。
Scanner sc = new Scanner(System.in);
System.out.println("Shkruani 3 karaktere / simbole: ");
char[] simbolet = sc.nextLine().substring(0,5).toCharArray();
在这种情况下,如果输入短于5,你当然会得到例外。
如果您想读取一行并且只获得前五个符号,则可以使用子字符串:
如果您想从用户那里获得5个字符,请使用循环。但是在循环之外声明simbolet
数组,否则您将丢失先前输入的输入:
int end = 5;
Scanner sc = new Scanner(System.in);
char[] simbolet = new char[end];
for(int i = 0; i < end; i++) {
System.out.println("Enter 1 character or symbol: ");
simbolet[i] = sc.nextLine().charAt(0);
System.out.println(simbolet);
}
sc.close();
或者您可以将两种方法结合起来:
int end = 5;
Scanner sc = new Scanner(System.in);
char[] simbolet = new char[end];
System.out.println("Enter the symbols: ");
String input = sc.nextLine();
for (int i = 0; i < end && i < input.length(); i++) {
simbolet[i] = input.charAt(i);
}
System.out.println(simbolet);
sc.close();