我编写了代码来创建$date->format('Y-m-d H:i:s')
个字符。所以我从用户那里逐个插入字符。但我只能插入一次角色。
我的代码是:
LinkList
我的输出是:
import java.io.*;
class Node {
char a;
Node next;
Node(char a) {
this.a = a;
}
}
public class LinkList {
static Node start;
static Node end;
LinkList() {
start = null;
end = null;
}
public static void main(String ar[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("enter the no. of nodes to be created");
int n = Integer.parseInt(br.readLine());
char a;
for (int i = 1; i <= n; i++) {
System.out.println("enter the value for the node");
a = (char) System.in.read();
Node no = new Node(a);
insert(no);
}
display();
}
public static void insert(Node n) {
if (start == null) {
start = n;
end = n;
} else {
end.next = n;
end = n;
}
}
}
在这里我要输入6个字符,但我只能输入2个字符。 我想输入所有6个字符,但我只能输入2个字符。(a,m)
答案 0 :(得分:0)
在a = (char) System.in.read();
之后添加以下内容
System.in.read();
System.in.read();
为什么会这样?
当您输入a
并按Enter
时,会读取3个字符。
a
为1,Enter
为2。\r
时\n
和Enter
将被视为字符输入
所以字符在6次迭代中输入如下:
所以你只能阅读你想要的两个字符。你可以跳过将\ r和\ n存储到你的链表中,只需阅读而不用它做任何事情。
修改a = (char) System.in.read();
,如下所示:
a = (char) System.in.read();
System.in.read();
System.in.read();
答案 1 :(得分:0)
a = (char) System.in.read();
即使你之前创建了BufferedReader
,你也是这样做的。你需要做的是:
a = (char) br.readLine()
这将读完整行。你无法read()
,因为它会读取更多字符(例如输入和\r
)。但这不是全部,你只需要一行中的一个字符,这样你就会有错误,你需要从这一行中提取一个字符,如下所示:
a = (char) br.readLine().charAt(0)
我认为charAt()
方法不言自明。现在它会正常工作。我还建议您使用Scanner
来获取用户输入,请在此处阅读Scanner
:click
答案 2 :(得分:0)
你可以使用Scanner
public static void main(String ar[]) throws IOException {
Scanner scanner = new Scanner(System.in);
System.out.println("enter the no. of nodes to be created");
//If input entered was not an integer - exception raised
int n = scanner.nextInt();
char a;
for (int i = 1; i <= n; i++) {
System.out.println("enter the value for the node");
a = scanner.next().charAt(0);
Node no = new Node(a);
insert(no);
}
scanner.close();
}
答案 3 :(得分:0)
您可能希望使用不带换行符的提示修剪控制台噪音,因此请使用print("xxx")
标题打印输出。读取一行(ENTER换行前的文本)并取一个字符。
import java.io.*;
import java.util.*;
class Node {
char a;
Node next;
Node(char a) {
this.a = a;
}
}
public class LinkList {
static Node start;
static Node end;
LinkList() {
start = null;
end = null;
}
public static void main(String ar[]) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.print("Enter the no. of nodes to be created: ");
int n = Integer.parseInt( sc.nextLine().trim() );
for (int idx=1; idx <= n; idx++) {
System.out.print("Enter the value for the node: ");
char a = sc.nextLine().trim().charAt(0);
Node no = new Node(a);
insert(no);
}
sc.close();
System.out.println("Content of list");
display();
}
public static void insert(Node n) {
if (start == null) {
start = n;
end = n;
} else {
end.next = n;
end = n;
}
}
private static void display() {
Node node = start;
while(node!=null) {
System.out.println(node.a);
node = node.next;
}
}
}