小编ran*_*ana的帖子

如何使用String.format使字符串居中?

public class Divers {
  public static void main(String args[]){

     String format = "|%1$-10s|%2$-10s|%3$-20s|\n";
     System.out.format(format, "FirstName", "Init.", "LastName");
     System.out.format(format, "Real", "", "Gagnon");
     System.out.format(format, "John", "D", "Doe");

     String ex[] = { "John", "F.", "Kennedy" };

     System.out.format(String.format(format, (Object[])ex));
  }
}
Run Code Online (Sandbox Code Playgroud)

输出:

|FirstName |Init.     |LastName            |
|Real      |          |Gagnon              |
|John      |D         |Doe                 |
|John      |F.        |Kennedy             |
Run Code Online (Sandbox Code Playgroud)

我希望输出居中.如果我不使用' - '标志,则输出将与右侧对齐.

我没有在API中找到中心文本的标志.

文章有关于格式的一些信息,但没有对中心自圆其说.

java string format string-formatting

15
推荐指数
5
解决办法
5万
查看次数

OutOfMemoryError的原因是什么:以下情况下的Java堆空间?

以下代码示例位于一个运行大约200万次的for循环中.

List<String> parameters = new LinkedList<String>();
stmt2 = null;
rs2= null;

//This is line 472
stmt2 = con.prepareStatement("select NAME from TABLE_NAME where FIELD="+ strId);
rs2 = stmt2.executeQuery();

while (rs2.next()) {
    parameters.add(rs2.getString("NAME"));
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at com.mysql.jdbc.PreparedStatement.<init>(PreparedStatement.java:437)
    at com.mysql.jdbc.Connection.clientPrepareStatement(Connection.java:2185)
    at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4782)
    at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4687)
    at consistencyCheck.ConsistencyCheck.parameterCheck(ConsistencyCheck.java:472)
    at consistencyCheck.ConsistencyCheck.performConsistencyCheck(ConsistencyCheck.java:316)
    at consistencyCheck.ConsistencyCheck.main(ConsistencyCheck.java:198)
Run Code Online (Sandbox Code Playgroud)

如果需要更多信息,请告诉我.

谢谢.

谢谢大家的答案.我会接受BalusC的回答,因为他先回答.不幸的是,由于声誉不够,我无法提出任何其他答案:(

对所有建议增加内存堆的人都要注意.增加内存堆是你永远不应该做的事情,除非你100%确定这是你问题的唯一解决方案.例如,在我的问题中,增加堆可能会"解决"问题,但潜在的错误仍然存​​在.

java mysql heap memory-leaks jdbc

4
推荐指数
2
解决办法
8341
查看次数

与访问mysql数据库中的相同数据相比,访问java列表(arraylist)更快吗?

我在本地机器上有MYSQL数据库,我正在运行java程序.

我计划创建一个特定表的所有条目的数组列表.从这一点来看,我不会访问数据库来获取表中的特定条目,而是使用创建的数组列表.与访问数据库以获取表中的特定条目相比,这会更快还是更慢?

请注意,我感兴趣的表有大约200万条目.

谢谢.

更多信息:我只需要两个字段.1个Long类型和1个String类型.表的索引是Long,而不是int.

java mysql database arraylist

0
推荐指数
1
解决办法
1409
查看次数