Java 我如何告诉编译器没有更多的输入
我的朋友向我展示了基本java是如何工作的,但是他没有向我展示代码是如何工作的,我想知道我如何告诉任何编译器没有更多的输入?因为它只是让我永远保持键入,我确信代码是正确的,只是当我编译代码时,它只留下空间,我可以继续按enter键输入更多字符,但我不知道如何停止Java 我如何告诉编译器没有更多的输入,java,cygwin,Java,Cygwin,我的朋友向我展示了基本java是如何工作的,但是他没有向我展示代码是如何工作的,我想知道我如何告诉任何编译器没有更多的输入?因为它只是让我永远保持键入,我确信代码是正确的,只是当我编译代码时,它只留下空间,我可以继续按enter键输入更多字符,但我不知道如何停止 import java.io.*; class FileStats { /** * Implements the entire process (reading and reporting). *
import java.io.*;
class FileStats {
/**
* Implements the entire process (reading and reporting).
*
* @param args is not used.
*/
public static void main(String args[]) throws IOException {
// Variables to hold the various character class counts.
int lowerCase = 0;
int upperCase = 0;
int whiteSpace = 0;
int otherChars = 0;
int totalChars = 0;
// Read the (standard) input
while (true) {
// Quit if there's no more input.
int input = System.in.read();
if (input < 0) break;
// Cast the input to a character.
char c = (char) input;
// Tally up the statistics.
totalChars++;
if ('a' <= c && c <= 'z') {
lowerCase++;
} else if ('A' <= c && c <= 'Z') {
upperCase++;
} else if (' ' == c || '\t' == c || '\n' == c) {
whiteSpace++;
} else {
otherChars++;
}
}
// Report the statistics
System.out.println(totalChars + " Total Characters");
System.out.println(lowerCase + " Lower-Case Characters");
System.out.println(upperCase + " Upper-Case Characters");
System.out.println(whiteSpace + " White-Space Characters");
System.out.println(otherChars + " Other Characters");
}
}
import java.io.*;
类文件状态{
/**
*执行整个过程(读取和报告)。
*
*未使用@param args。
*/
公共静态void main(字符串args[])引发IOException{
//用于保存各种字符类计数的变量。
int小写=0;
int大写=0;
整数空格=0;
int-otherChars=0;
int totalChars=0;
//读取(标准)输入
while(true){
//如果没有更多输入,请退出。
int input=System.in.read();
如果(输入<0)中断;
//将输入转换为字符。
字符c=(字符)输入;
//统计数字。
totalChars++;
如果('a'您有一个,而(true)
,那么,是的,程序将始终循环从键盘请求数字
我想你需要另一个,否则如果循环中的捕捉到一个“特殊”字符,这意味着循环必须结束,你可以从那里调用break
例如
您有一个while(true)
,因此,是的,程序将始终循环从键盘请求数字
我想你需要另一个,否则如果循环中的捕捉到一个“特殊”字符,这意味着循环必须结束,你可以从那里调用break
例如
对于java新手来说,最好从Scanner开始
尝试:
import java.io.*;
导入java.util.Scanner;
类文件状态{
/**
*执行整个过程(读取和报告)。
*
*未使用@param args。
*/
公共静态void main(字符串args[])引发IOException{
//用于保存各种字符类计数的变量。
int小写=0;
int大写=0;
整数空格=0;
int-otherChars=0;
int totalChars=0;
//读取(标准)输入
扫描仪=新的扫描仪(System.in);
字符串行=scanner.nextLine();
对于(int i=0;i 对于java中的新手来说,最好从Scanner开始
尝试:
import java.io.*;
导入java.util.Scanner;
类文件状态{
/**
*执行整个过程(读取和报告)。
*
*未使用@param args。
*/
公共静态void main(字符串args[])引发IOException{
//用于保存各种字符类计数的变量。
int小写=0;
int大写=0;
整数空格=0;
int-otherChars=0;
int totalChars=0;
//读取(标准)输入
扫描仪=新的扫描仪(System.in);
字符串行=scanner.nextLine();
对于(int i=0;i
int input = System.in.read();
再次查看您的条件语句:
if (input < 0) break;
然后,如果您键入“p”,它将跳出循环并根据需要显示结果
或者,您可以使用java.util.Scanner中的扫描仪
可以使用read()函数读取下一个输入字符串。java String类有一个名为charAt(int index)的方法,该方法返回字符串中特定索引处的字符。可以使用此方法获取输入的第一个字符:
char c = reader.next().charAt(0);
如果你把这些放在一起:
while (true) {
char c = reader.next().charAt(0);
if (c == '.') break;
这样,您就不必担心将int强制转换为char。希望这会有所帮助。InputStream read()方法将一个字节作为int返回,范围为0到255
int input = System.in.read();
再次查看您的条件语句:
if (input < 0) break;
然后,如果您键入“p”,它将跳出循环并根据需要显示结果
或者,您可以使用java.util.Scanner中的扫描仪
可以使用read()函数读取下一个输入字符串。java String类有一个名为charAt(int index)的方法,该方法返回字符串中特定索引处的字符。可以使用此方法获取输入的第一个字符:
char c = reader.next().charAt(0);
如果你把这些放在一起:
while (true) {
char c = reader.next().charAt(0);
if (c == '.') break;
这样,您就不必担心将int转换为char。希望这会有所帮助。有两个单独的步骤:1)使用编辑器编辑代码2)用编译器编译代码。不清楚你在问什么。很抱歉,我知道这个问题很让人困惑,但只是当我在诸如cygwin nothing hapens之类的编译器中编译代码时,例如,我会键入“Javac FileStats.java”编译它,然后使用java FileStats调用类,然后我输入多个数字,然后现在我试图完成代码并打印统计数据,但是考虑到你有一个while(true),我不知道如何做好
语句在那里它永远不会停止…你需要摆脱它,并可能想出一个更好的循环条件,比如…while(readInNumber!=-1)继续…
按ctrl-d发送EOF。仅供参考。此问题与编译器无关。编译器用于将代码转换为程序。您要问的是如何使程序完成运行。有两个单独的步骤:1)用编辑器编辑代码2)用编译器编译代码。不清楚你在问什么。对不起,我不知道