Tag: java.util.scanner

使用if else语句输入Java Scanner

嗨,我是java的新手,并尝试进行测验练习。 我想提出一个问题,用户必须将单词中的单词组合成对。 像A1 B4 C3 D2一样。 我现在做的是使用if else语句来检查输入是否是正确的答案,但它只适用于1A。 对于其他人,我可以做6个输入,这不是我想要的,即使有一个正确的,我也不明白。 public class HelloWorld { public static void main(String[] args) { Scanner walther = new Scanner(System.in); String cro = “1A”; String dan = “2C”; String fin = “4D”; String dut = “3F”; String fre = “5B”; String ger = “6E”; int x = 0; if (cro.equalsIgnoreCase(walther.nextLine())){ ++x; […]

尝试将二进制文件作为文本读取,但扫描程序在第一行停止

我正在尝试读取二进制文件,但我的程序只是在第一行停止..我认为这是因为文件有奇怪的字符..我只是想从中提取一些方向。 有没有办法做到这一点?.. public static void main(String[] args) throws IOException { Scanner readF = new Scanner(new File(“D:\\CurrentDatabase_372.txt”)); String line = null; String newLine = System.getProperty(“line.separator”); FileWriter writeF = new FileWriter(“D:\\Songs.txt”); while (readF.hasNext()) { line = readF.nextLine(); if (line.contains(“D:\\”) && line.contains(“.mp3”)) { writeF.write(line.substring(line.indexOf(“D:\\”), line.indexOf(“.mp3”) + 4) + newLine); } } readF.close(); writeF.close(); } 该文件如下所示: pppppamepD:\Music\Korn\Untouchables\03 Blame.mp3pmp3pmp3pKornpMetalpKornpUntouchablespKornpUntouchables*;*KornpKornpKornUntouchables003pMetalKornUntouchables003pBlameKornUntouchables003pKornKornUntouchables003pMP3pppppCpppÀppp@ppøp·pppŸú#pdppppppòrSpUpppppp€ppªp8›qpppppppppppp,’ppÒppp’ÍpET?ppppppôpp¼}`Ñ#ãâK†¡H¤*(DppppppppppppppppuÞѤéú:M®$@]jkÝW0ÛœFµú½XVNp`w—wâÊp:ºŽwâÊpppp8Npdpp¡pp{)pppppppppppppppppyY:¸[ªA¥Bi `Û¯pppppppppppp2pppppppppppppppppppppppppppppppppppp¿ÞpAppppppp€ppp€;€?€CpCpC€H€N€S€`€e€y€~p~p~€’€«€Ê€â€Hollow […]

被FileNotFoundexception困扰

我想要做的就是从文本文件导入数据。 该文件存在于C:\ temp \ text.txt中。 但是,我一直收到文件未找到错误。 我到底做错了什么??? public static void main(String[] args) throws IOException { String mFilename = “C:\\temp\\text.txt”; Scanner myDataStream = new Scanner(new File(mFilename));}

为什么Scanner会跳过用户的输入

我有一个小任务,允许用户进入任何国家的地区和他们的邻居。 我做了一切,我只是遇到一个小问题,当我运行我的代码并且程序要求用户输入区域数量时,如果用户输入13或者数字大于10,系统将认为该数字就像两个输入,它不允许用户输入第二个问题的任何内容,它将立即提示他第三个问题。 为什么? 我认为以下命令中Scanner类的问题: Scanner kb = new Scanner(System.in); System.out.print(“Please enter the number of regions: “); int REGION_COUNT = kb.nextInt(); region = new CountryRegion[REGION_COUNT]; String[] neighbours; for (int r = 0; r < region.length; r++) { System.out.print("Please enter the name of region #" + (r + 1) + ": "); String regionName = kb.nextLine(); System.out.print("How […]

如何中断scanner.nextline()调用

关于打断读取系统的问题有很多线索。但是我在这里寻找的是如何最好地编写我想要实现的内容的一些建议。 我有一个getlogin()方法需要执行以下操作:要求用户输入所需的登录环境详细信息,如果在6秒后用户没有输入有效值(“live”或“test”),则将userlogin变量设置为“测试”并将其返回给调用者。 我为getlogin()实现采用了以下方法: 1 – 启动两个执行以下操作的线程: – thread1创建一个scanner对象,然后调用scanner.nextline(),并根据用户输入设置变量userlogin。 在退出thread1之前中断thread2。 – thread2等待6秒,如果仍未设置userlogin,则为userlogin设置默认值。 在退出thread2之前中断thread1。 2 – 加入thread2以阻止主线程返回null userlogin 3 – 返回userlogin 我遇到的问题是,当thread2调用thread1.interrupt时,scanner.nextline()不会中断,这就是为什么我不在第2步中加入thread1,因为主线程会挂起。 在thread2中断后有没有办法让thread1完成? 或者这种方法是否完全过度,并且有一种更简单的方法来实现合同?

使用GUI的JFrame取消Scanner类吗?

我创建了一个带有一些按钮的JFrame窗口,我想在用户单击特定按钮时启动该方法,该方法将使用扫描仪对象从用户获取信息。 出于某种原因,我从框架中单击该按钮后,该方法启动但我无法键入任何信息。 有没有办法在同一个应用程序中使用JFrame和Scanner类?

Scanner.hasNext上的无限循环,从文件中读取

我显然在while(input.hasNext())上面临无限循环,如下面的代码所示 File file = new File(“data.txt”); Scanner input = new Scanner(file); int sum = 0; while (input.hasNext()) { if (input.hasNextInt()) { sum += input.nextInt(); } } System.out.println(sum); 一些相关的问题解释了为什么如果输入流是System.in它总是返回true,但是我正在扫描File 。 请让我知道我哪里出错了。 我正在尝试计算唯一整数值​​的总和(以空格分隔的位置)。 编辑: 经验教训, input.hasNext()不会将指针移动到下一行,因此扫描仪不会超过任何输入。 正如在这个问题的答案以及这里所解释的那样。

如何在我的扫描仪之前调用GUI代码?

在打开GUI窗口之前,我从命令行获取输入时遇到了一些麻烦。 我之前在Apple Exchange上问过这个问题,但是在我们确定它是一个编程问题后发送到这里。 基本上我在打开一个窗口之前运行扫描仪来获取用户输入,但它启动程序,在我的Mac上切换空间,然后我必须切换回工作区,其中有终端来回答问题。 这是原始问题的链接。 https://apple.stackexchange.com/questions/45058/lion-fullscreen-desktop-switching-quirk/45065#comment51527_45065 这是我测试过的代码…… public class Client extends JFrame { public static void main(String[]args) { Scanner in = new Scanner(System.in); System.out.printf(“\nGive me a size for the screen: “); String response = in.nextLine(); new Client(response); } public Client(String title) { super(title); super.setVisible(true); } }

Java – 扫描逗号分隔的double和int值

我正在尝试使用Java的Scanner类来扫描用逗号分隔的double和int值。 以下Scanner input = new Scanner(System.in).useDelimiter(“\\D”); 只能扫描由…分隔的int值。 例如输入= 1000,2,3 如何扫描由…分隔的double和int值,例如input = 1000.00,3.25,5或100.00,2,3.5 ? 我尝试了以下但它们似乎不起作用: Scanner input = new Scanner(System.in).useDelimiter(“,”); Scanner input = new Scanner(System.in).useDelimiter(“\\,”); Scanner input = new Scanner(System.in).useDelimiter(“[,]”); 使用这些似乎挂起代码。 输入示例输入后,System.out.println未针对已扫描的变量执行。 以下是我的示例代码: import java.io.*; import java.util.Scanner; public class Solution { public static void main(String args[] ) throws Exception { /* Enter your code here. Read […]

使用Java删除字符串中的所有元音

我正在为我的计算机科学课程做作业。 任务是获取用户输入,删除所有元音,然后打印新语句。 我知道我可以使用这段代码轻松完成: string.replaceAll(“[aeiou](?!\\b)”, “”) 但我的导师希望我使用嵌套的if和else if语句来实现结果。 现在我正在使用这样的东西: if(Character.isLetter(‘a’)){ ‘do something’ }else if(Character.isLetter(‘e’)){ ‘do something else’ 但我不知道在if和else if语句中要做什么。 我应该删除这封信吗? 或者有更好的方法吗? 看到这是我的作业,我不想要完整的答案只是提示。 谢谢!