如何使用扫描仪获取行号

我正在使用扫描仪逐行读取文本文件但是如何获取行号,因为扫描程序遍历每个输入?我的程序是这样的: s = new Scanner(new BufferedReader(new FileReader(“input.txt”))); while (s.hasNext()) { System.out.print(s.next()); 这工作正常,但例如: 1,2,3 3,4,5 我想知道它的行号,这意味着1,2,3在第1行,而3,4,5在第2行。我怎么做到的?

Java中的变量默认值

声明时,Java中的每个类型都具有原始值。 本文包含原始数据类型原始数据类型的说明 。 知道这一点,为什么Eclipse显示错误告诉我变量可能尚未初始化? 如果我有例如 int x; x++;

从JSlider的值改变JLabel的值

我有一个包含JSlider和JLabel的JPanel。 我想配置它,以便当用户更改JSlider的值时,新值将由JLabel反映出来。 我知道我可以使用Slider触发ChangeEvents,但我不知道如何将ChangeListener添加到JLabel。 这是我的代码片段。 scaleSlider.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent event) { int currentTime = ((JSlider)event.getSource()).getValue(); doSomething(currentTime); fireStateChanged(event); } JLabel timeValue = new JLabel(“Time: ” + scaleSlider.getValue()); timeValue.add??? (我现在不知道该做什么来反映滑块的变化) 我是否朝着正确的方向前进? 在此先感谢您的帮助。

Java中JTextfield的表单validation?

有一种简单的方法可以在Java validate一组JTextFields 。 我目前正在使用sqlite manager , neatbeans IDE创建一个简单的表单来收集信息以将作业添加到数据库中。 我意识到JTextFields太多了。 如何通过sqllite抛出可以自定义的exception错误,或者通过属性对话框在Neatbeans中validation每个JTextField。 validation是存在检查,即已输入值。 自定义validation消息?

将带有点或逗号的字符串转换为浮点数

我总是喜欢在我的函数中输入数字,范围从0.1到999.9(小数部分总是用’。’分隔,如果没有小数,那么没有’。’,例如9或7。 如何将此String转换为浮点值而不管本地化(某些国家使用’,’来分隔数字的小数部分。我总是用’。’来得到它)? 这取决于本地计算机设置吗?

使用reflection调用类中的所有setter

我有一个域对象,为了这个问题的目的,我将使用以下私有变量调用Person: String name int age 每个人都有吸气剂和二传手。 现在我还有一个Map其中包含以下条目: name, phil age, 35 我想在Person类中填充所有setter方法的列表,然后循环遍历此列表并使用map中的值调用每个方法。 这是否可能,因为我在网上看不到任何接近这个的例子。 非常感谢例子。

LinkedList:Collections.max()抛出NoSuchElementException

我不是通过扫描仪或其他方法迭代LinkedList ,我使用Collections.max()从LinkedList获取最大数量。 我已经在Stack Overflow上读到由于迭代器或扫描器或标记器而引发此exception,但我没有使用它们。 import java.io.*; import java.util.*; class TLG { public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); LinkedList first = new LinkedList(); LinkedList second = new LinkedList(); int cases = Integer.parseInt(br.readLine()); for(int i=1;i 0){ first.add(diff); } else { second.add(java.lang.Math.abs(diff)); } } Integer max1 = Collections.max(first); // Getting Exception […]

(java)ObjectInputStream反序列化错误版本的对象

我只是从java书中学习网络,所以我有点像菜鸟。 我无法在书中或网上找到这个问题所以我决定问互联网。 该书说使用ObjectOutputStream和ObjectInputStream来发送和接收不同控制台的对象。 现在,我能够成功接收我发送的对象 – 但只能一次。 当我发送不同的对象:随机字符串和整数和无名实例时,控制台具有所有正确的字段。 但是当我发送一个对象的实例时,更改其中一个实例的字段的值,然后重新发送该对象,然后inpustream会加载原始实例的值。 所以,例如,我有一个类的实例,其公共int“var”等于1.如果我发送此类的实例,客户端会收到它并正确报告var = 1.但是,如果我更改var到2(在同一个实例中)并重新发送它,客户端将完成调用read()方法(因此它必须已经接收到新对象!),但它会将var报告为1.如果我将实例发送到一个尚未收到实例的不同客户端,它会正确地将var报告为2,即使我更改了var,它也会继续将其报告为2。 如果客户端之前没有收到该实例的正确版本,则该事实必须意味着该对象正在通过输出流正确发送; 由于某种原因,输入流不起作用。 它几乎就像它看到它是相同的对象所以它假定它具有相同的值而不检查。 为什么会发生这种情况,我该如何解决? 对不起,如果我问一些愚蠢的东西 – 这本书没有解释序列化和套接字如何工作,只是如何使用它们,所以我很可能从根本上对如何使用它们感到困惑。 谢谢! 我编写的简单代码来测试问题: 服务器:(有一个计时器动作来继续发送更新的对象) public void actionPerformed(ActionEvent e) { object.var++; output.write(object); output.flush(); System.out.println(object.var); } 客户 public void run() { while(true) { Test t = (Test)input.readObject(); System.out.println(t.var); } } 当这些程序运行时,Server类的输出是1,2,3,4 ……无限增加,而Client的输出只有1,1,1,1,1,1,1等。 感谢您抽出时间来阅读。 对不起,如果我只是愚蠢,我是这个东西的新手。 编辑:对不起,read()是一个错误的类型(我手动输入代码因为我无法正确格式化),我的意思是input.readObject()

为什么FileChannel.map会占用Integer.MAX_VALUE数据?

我在使用FileChannel.map时遇到exception Exception in thread “main” java.lang.IllegalArgumentException: Size exceeds Integer.MAX_VALUE at sun.nio.ch.FileChannelImpl.map(Unknown Source) at niotest.NioTest.readUsingNio(NioTest.java:38) at niotest.NioTest.main(NioTest.java:64) 快速查看OpenJdk实现显示FileChannelImpl中的方法map(..)将long类型的size作为输入。 但是在体内,它将它与Integer.MAX_VALUE进行比较,如果它大于那,则抛出错误。 为什么将long尺寸作为输入但是将其限制为最大integer长度? 有谁知道这个实现背后的具体原因? 还是某种虫子? 源URL – http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/sun/nio/ch/FileChannelImpl.java 我在64位Windows-2k8上使用64位JRE运行此程序

在运行时Java更改枚举

有没有办法在Java中为内置的枚举类添加元素? 我的问题类似于我可以在Java中添加和删除运行时枚举的元素 ,但这个问题似乎是为了构建自己的枚举然后修改它。 我假设某个地方存在一个我无法改变的枚举,类似于 enum Days{ MONDAY, TUESDAY, WEDNESDAY } 我想在周四,周五等地添加它。 不幸的是,关于如何使用界面来实现我的目标的建议,或其他比枚举更有效的方法,这里不适用。 根据我的理解,枚举是隐式最终的,所以我不能扩展它并添加更多元素。 它有私有字段,但似乎我可以使用reflection来访问那些 – 我可以更改其中一个私有字段,即使我不能添加新字段,即周一到周四更改? 编辑:澄清情况 人们建议在将代码编译到程序之前更改代码。 我的代码是一个我无法改变的大项目的一部分; 在我的类访问它之前,具有枚举的类由较大的程序加载。 那时,我想将缺少的元素添加到枚举中。 字节码操作仍然是要走的路吗?