Java中的漂亮打印2D数组

我正在寻找一个将一个矩形String [] []打印到一个具有正确列长度的人类可读表中的util。

通过java中的标点符号和空格等通过正则表达式拆分字符串

我有这个文本文件,我读入Java应用程序,然后逐行计算其中的单词。 现在我正在将这些行分成一个单词 String.split([\\p{Punct}\\s+])” 但我知道我错过了文本文件中的一些单词。 例如,“不能”这个词应该分为两个词“can”和“t”。 应完全忽略逗号和其他标点符号,并将其视为空格。 我一直试图理解如何形成一个更精确的正则表达式来做到这一点,但我是一个新手,所以我需要一些帮助。 对于我所描述的目的,什么可以是更好的正则表达式?

Java:如何在hashmap中获取具有相同值的键集

我有一个hashmap如下: 1-> X 2->ÿ 3-> X 4->ž 现在我想知道值为x的所有键(ans:[1,3])。 什么是最好的方法? 蛮力方式是迭代地图并将所有键存储在值为x的数组中。 有没有有效的方法。 谢谢

如何将字段标记为瞬态可以序列化对象

public class Foo implements java.io.Serializable { private int v1; private static double v2; private Loan v3 = new Loan(); } 选项: 答:Foo的一个实例可以被序列化,因为Foo实现了Serializable。 B.无法序列化Foo的实例,因为Foo包含不可序列化的实例变量v3。 C.如果将v3标记为瞬态,则Foo的实例是可序列化的。 D. b和c 答案:D Explanation:即使对象实现java.io.Serializable ,也可能无法序列化对象,因为它可能包含不可序列化的实例变量。 现在我的问题是: 据我所知,transient 用于关闭序列化。 那么在这种情况下如何瞬态,帮助我们序列化foo?

如何修改Eclipse代码格式?

当我使用Eclipse重新格式化代码时,它会像这样转换方法头: public void myMethod(String param) { 进入这样的方法标题: public void myMethod( String param) { 当我被带到这里时,我以前从未使用过Eclipse,并且我导入了其他人提供的项目设置。 我已经看到,在Eclipse上工作的小型新项目没有这样做,所以它必须在我导入的设置中。 但是我已经浏览了我能找到的每个面板,以及我在工作区中找到的每个隐藏文件,我无法弄清楚是什么导致了这个问题。 我该如何关闭它? 我不希望在我的方法签名中的参数之前换行,我无法想象为什么有人会这样做!

尝试使用ESAPI但是获取错误

我正在尝试使用ESAPI.jar为我的Web应用程序提供安全性。基本上我刚开始使用ESAPI.jar。 但问题是我无法使用ESAPI运行一个简单的程序。 小代码片段是: String clean = ESAPI.encoder().canonicalize(“someString”); Randomizer r=ESAPI.randomizer(); System.out.println(r); System.out.println(clean); 我收到此错误: Attempting to load ESAPI.properties via file I/O. Attempting to load ESAPI.properties as resource file via file I/O. Not found in ‘org.owasp.esapi.resources’ directory or file not readable: D:\Eclipse-Workspace\Test\ESAPI.properties Not found in SystemResource Directory/resourceDirectory: .esapi\ESAPI.properties Not found in ‘user.home’ (C:\Documents and Settings\user.user) directory: C:\Documents and […]

Java if三元运算符和Collections.emptyList()

你能解释为什么第一个返回类型的代码无法编译? 消息是: Type mismatch: cannot convert from List to List Type mismatch: cannot convert from List to List 。 在第二种情况下是否插入了显式转换? public class GenericsTest { private String getString() { return null; } public List method() { String someVariable = getString(); //first return type //return someVariable == null ? Collections.emptyList() : Collections.singletonList(someVariable); //second return type if (someVariable […]

如何调试ConcurrentModificationException?

我遇到了ConcurrentModificationException,通过查看它,我看不出它为什么会发生的原因; 抛出exception的区域和修改集合的所有位置都被包围 synchronized (this.locks.get(id)) { … } // locks is a HashMap; 我试图抓住讨厌的线程,但我所能指出的(通过在exception中设置断点)是抛出线程拥有监视器而另一个线程(程序中有两个线程)睡眠。 我该怎么办? 当遇到类似的线程问题时,您通常会做什么?

如何在一个加起来定义总数的数组中生成随机数?

我需要在Java中随机生成一个包含7个插槽的数组。 所有这些插槽的值必须至少为1,但组合后,其总值应为另一个定义的数字。 它们也都需要是一个int值,没有1.5或0.9816465684646数字。 例: int a=10; int[] ar = new int[7] ar[0] = 1 ar[1] = 1 ar[2] = 2 ar[3] = 2 ar[4] = 1 ar[5] = 2 ar[6] = 1 我希望它生成类似的东西,但如果int a = 15,所有数字将以任何顺序总共15

在java中读取unicode字符

当我分配一个unicode字符串时,我对java有点新鲜 String str = “\u0142o\u017Cy\u0142”; System.out.println(str); final StringBuilder stringBuilder = new StringBuilder(); InputStream inStream = new FileInputStream(“C:/a.txt”); final InputStreamReader streamReader = new InputStreamReader(inStream, “UTF-8”); final BufferedReader bufferedReader = new BufferedReader(streamReader); String line = “”; while ((line = bufferedReader.readLine()) != null) { System.out.println(line); stringBuilder.append(line); } 为什么在两种情况下结果都不同,文件a.txt也包含相同的字符串。 但是当我打印文件的输出时,它打印z\u0142o\u017Cy\u0142而不是实际的unicode字符。 如果我想将文件内容也打印为正在打印的字符串,我知道如何做到这一点。