扫描程序类跳过空格

我使用嵌套的Scanner循环从字符串行(从文本文件)中提取数字,如下所示: String str = testString; Scanner scanner = new Scanner(str); while (scanner.hasNext()) { String token = scanner.next(); // Here each token will be used } 问题是这段代码会跳过所有空格” ” ,但我也需要使用那些“空格”。 那么Scanner可以返回空间还是我需要使用别的东西? 我的文本文件可能包含以下内容: 0 011 abc d2d sdwq sda 那些空白行每个包含1 ” ” ,那些” “是我需要返回的。

为什么lambda强迫我使用单个元素数组而不是最终对象?

我有以下课程: public class Item{ private String name; //setter getter } 和物品的集合。 我想得到Collection中最后一项的名字。 要做到这一点,我只需迭代所有集合并使用最后。 问题是我不知道为什么它迫使我使用一个元素String数组。 为什么我必须使用: String[] lastName = {“”}; items.forEach(item -> lastName[0] = item.getName()); System.out.println(lastname[0]); 代替: final String lastName; items.forEach(item -> lastName = item.getName()); System.out.println(lastname);

JTable Cell Renderer

我正在按照我发现的一些代码,(是的我理解它是如何工作的)它来自这里: Code Link 如果单元格值设置为“黄色”,我正在尝试设置单元格前景色 这是我的代码: public class Board extends JPanel{ private static final long serialVersionUID = 1L; int boardHeight = 20; int boardWidth = 10; JTable table; public Board() { table = new JTable(this.boardHeight, this.boardWidth); table.setDefaultRenderer(String.class, new BoardTableCellRenderer()); table.setFocusable(false); table.setShowGrid(false); table.setRowMargin(0); table.setIntercellSpacing(new Dimension(0,0)); table.setRowSelectionAllowed(false); table.setVisible(true); this.add(table); this.setPreferredSize(new Dimension(table.getPreferredSize().width, (table.getPreferredSize().height + 85))); } public void paint(Graphics […]

在匿名类中测试方法时,如何使用Powermockito来模拟新对象的构造?

我想写一个JUnit测试来validation下面的代码使用BufferedInputStream: public static final FilterFactory BZIP2_FACTORY = new FilterFactory() { public InputStream makeFilter(InputStream in) { // a lot of other code removed for clarity BufferedInputStream buffer = new BufferedInputStream(in); return new CBZip2InputStream(buffer); } }; (FilterFactory是一个接口。) 到目前为止我的测试看起来像这样: @Test public void testBZIP2_FactoryUsesBufferedInputStream() throws Throwable { InputStream in = mock(InputStream.class); BufferedInputStream buffer = mock(BufferedInputStream.class); CBZip2InputStream expected = mock(CBZip2InputStream.class); […]

为什么java源文件需要包声明?

我想我无法理解java包结构,对我来说,java文件中有一个包声明似乎是多余的,然后还需要出现在与包名匹配的目录中。 例如,如果我有一个MyClass.java文件: package com.example; public class MyClass { public static void main(String[] args) { System.out.println(“Hello, World”); } } 然后我将需要将此文件放在com/example ,相对于基本目录,我将从基本目录执行java com.example.MyClass来运行它。 为什么编译器不能通过查看目录结构来推断包名? 例如,如果我从基本目录javac com\example\MyClass.java编译文件,我不明白为什么MyClass.java不会隐含属于com.example包。 我知道有一个默认包,但似乎源文件中的包声明仍然是冗余信息?

Java鼠标在屏幕上的任何位置移动

我确信这是可能的,但我所有的搜索都是空白的。 在Java中,是否可以在Java应用程序之外注册鼠标运动事件? 因此,如果鼠标指针移动到屏幕上的任何位置,我会收到回电。 轮询MouseInfo.getPointerInfo可以进行近似,但必须有更好的方法。 谢谢 解释用例:它仅用于宠物项目,但基本上在鼠标触及屏幕边缘时触发事件。 我还在想,如果你试图超越屏幕的边缘,可能会触发不同的事件。 为此,我认为鼠标运动监听器可能更合适。

JComboBox对象实例中的项

您好我有以下代码,以查看JComboBox中的项是否是类(Persoon)的实例。 public class ItemChangeListener implements ItemListener { Persoon selectedPerson; RekeningApp app; PersoonView view; public ItemChangeListener(PersoonView view) { this.view = view; } public void itemStateChanged(ItemEvent event) { if (event.getStateChange() == ItemEvent.SELECTED) { Object item = event.getItem(); System.out.println(“Itemchangelistener ” + item); // do something with object if(item instanceof Persoon) { System.out.println(“Instance”); this.selectedPerson = (Persoon) item; view.setOverzicht(this.selectedPerson); } […]

如何用Java复制堆栈?

我有一个堆栈A,我想创建一个与堆栈A相同的堆栈B.我不希望堆栈B只是一个指向A的指针 – 我实际上想要创建一个包含相同元素的新堆栈B堆栈A的顺序与堆栈A的顺序相同。堆栈A是一堆字符串。 谢谢!

Java无法在文件名中打开具有代理Unicode值的文件?

我正在处理使用文件执行各种IO操作的代码,我想让它能够处理国际文件名。 我正在使用Java 1.5处理Mac,如果文件名包含需要代理的Unicode字符,则JVM似乎无法找到该文件。 例如,我的测试文件是: “草鷗外.gif”被破解成Java字符\u8349\uD85B\uDFF6\u9DD7\u5916.gif 如果我从这个文件名创建一个文件,我无法打开它,因为我得到一个FileNotFoundexception。 即使在包含该文件的文件夹上使用它也会失败: File[] files = folder.listFiles(); for (File file : files) { if (!file.exists()) { System.out.println(“Failed to find File”); //Fails on the surrogate filename } } 我实际处理的大部分代码都是以下forms: FileInputStream instream = new FileInputStream(new File(“草鷗外.gif”)); // operations follow 有没有办法解决这个问题,要么转义文件名,要么以不同的方式打开文件?

Jackson ObjectMapper DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT

我在Jersey应用程序中使用Jackson进行JSON序列化/反序列化。 我想在我的java POJO属性中将JSON中的空字符串读取为null值。 我试图在Object Mapper上设置DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT但它不起作用。 这是下面的代码 import java.io.IOException; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.DeserializationConfig; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; public class TestMapper { /** * @param args */ public static void main(String[] args) { TestMapper.testJson(); } public static void testJson(){ String jsonString = “{\”name\”:\”First Name\”,\”phone\”:\”\”,\”unknown\”:\”test\”}”; ObjectMapper result = new ObjectMapper(); //result.setDeserializationConfig(result.getDeserializationConfig().with(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT)); //result.enable(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT); /*DeserializationConfig deserializeConfig = result.getDeserializationConfig(); deserializeConfig.with(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);*/ result.configure(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, […]