我想知道从Scanner.next()加载的String对象和JOprionPane.showInputDialog(文本)之间有什么区别;
当我使用扫描仪时,我的小程序出现问题:
Scanner sc = new Scanner(System.in);
String s = sc.next();
s = s.replaceAll("\\s+", "");
我写了,假设"Dami an"结果是"Dami"
但是当我使用JOptionPane加载String时:
String s = JOptionPane.showInputDialog("Text");
s = s.replaceAll("\\s+", "");
结果是(正如我在前面的示例中所预期的那样)“Damian”。
为什么结果不同?
感谢帮助:)
致意:D
因为Scanner.next()
方法获取下一个令牌,即Dami
,所以an
是紧跟在Dami
之后的第二个令牌。
如果您希望以最高效(性能方面)的方式阅读整行内容,您可能希望使用:
try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in))){
String s = br.readLine();
}catch(IOException e){e.printStackTrace();}
sc.next()
只返回一个令牌,所以它只在第一次调用时获取Dami
,而不是Dami an
。如果再次调用sc.next()
,则会得到an
。
如果您想一次获取整行内容,请使用sc.nextLine()
。
我正试图用Java中的扫描器将一个字符串分成另外两个字符串。好像不起作用。我只能通过谷歌找到扫描仪用来读取控制台输入的例子。我从扫描仪的手册中找出了我做事情的方式,我不确定我错了什么。 第一个和第二个是空白的,我不知道为什么。
我的问题是格式化通过扫描仪输入的字符串。我试图输入“Result is”,但printf()似乎只看到字符串的“Result”部分,那么空格的命令是什么呢?thx公司
我创建了一个简单的扫描器,用于计算中的字符串数。txt文件。每个字符串位于下一行。它算错了,每次它给我数字297,甚至有超过20000个字符串。这个txt文件是由我编写的另一个程序创建的,它从网站获取链接,并使用FileWriter和BufferedWriter将其保存到。txt文件。可能有什么问题? 编辑:字符串示例:
任何人都可以帮我解决这个问题。我接受三个输入:整数、双精度和字符串,但Scanner类不接受字符串值
问题内容: 空字符串()和空字符串()有什么区别? 这就是我所拥有的: 这是什么意思? 问题答案: 表示将空值分配给。在这种情况下,与相同,将按预期产生。 表示将()或“完全没有值”分配给。因此,这与相同,它将产生一个,因为您无法在Java中对变量(指针或类似物)调用方法。 还有一点,声明 实际上具有与以下功能相同的效果: 鉴于 如前所述,是另一回事。
我必须使用扫描仪输入未知数量的数字。一旦用户输入-1,程序需要打印输入的所有数字的总和,然后结束程序。总和中需要包含-1。 我不能得到正确的总数。有人能帮忙吗?
问题内容: 这些声明之间有何不同? 每种情况下的内存分配如何? 问题答案: 要更正编译错误,请使用以下语句之一替换 下一节将以上陈述相互比较 字符串常量 “ MY PROFESSION”是一个常量,并存储在String池中 是不可变的,即完整的内容无法修改。 字符串的大小/长度是固定的(无法附加) 字符数组 保存String的基础数组的副本(通过)并存储在堆空间中 通过加载单个字符常量在堆栈框架中
本文向大家介绍字符数组和字符串之间的区别,包括了字符数组和字符串之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解字符数组和字符串之间的区别。 字符串 他们是不可变的。 一旦它们被定义,就不能被更改。 它指的是一个字符序列,表示为单个数据类型。 它包含了substring()、charAt()等内置函数。 可以使用' + '操作符将字符串追加到一起,从而形成一个新的字符串。