小编Ume*_*cha的帖子

Java String的奇怪行为

我遇到了这个程序,它没有按照预期的方式运行.

public class StringTest
{
      public static void main(String[] args)
      {
           String s = "Hello world";
           for(int i = 0 ; i < s.length() ; i++)
           {
                System.out.write(s.charAt(i));
           }
      }
}  
Run Code Online (Sandbox Code Playgroud)

如果我们认为它应该打印Hello world但它什么都不打印.到底是怎么回事?有任何想法吗?提前致谢.

java string

2
推荐指数
1
解决办法
480
查看次数

java.awt.color转换为java.lang.string

我想将java.awt.color对象转换为字符串.

Color c = new Color(255,0,0);
System.out.print(Color.toString);
Run Code Online (Sandbox Code Playgroud)

它打印java.awt.Color [r = 255,g = 0,b = 0]

现在我想解析这个字符串并解码颜色名称,例如蓝色等.

我在想是否有任何其他方法可以直接将此Color转换为String.

提前致谢.

编辑:我想将此颜色值存储在数据库中.我应该将它存储为String或RGB值吗?

java

2
推荐指数
1
解决办法
4325
查看次数

如何基于列值的类型使PreparedStatement.setXXX()动态

我必须使用包含所有行的数据文件中的值更新表。现在,我正在使用JDBC批处理。数据文件包含100列和数百万行。

例如,数据文件包含3列两行,使其变得简单

1,ABC,DEF
2.GHI,JKL

PreparedStatement pstmt = connection.prepareStatement(insert);
                //how to find type
                pstmt.setInt(1, 2);
                pstmt.setString(2, "GHI");
                pstmt.setString(3, "JKL");
                pstmt.addBatch();
                pstmt.executeBatch();
Run Code Online (Sandbox Code Playgroud)

现在的问题是基于从数据文件中传来的数据运行时间我怎么发现我需要打电话setInt或setString更重要的是我需要多少次调用setXXX为addBatch()。对于每个表,似乎需要专用的prepareStatements。更重要的是,我需要根据数据文件中的列数来查找应在运行时调用setObject多少次?无论如何,我可以使这个通用吗?

我是JDBC的新手,请指导。提前致谢。

java jdbc

2
推荐指数
1
解决办法
3252
查看次数

如何根据名称整数对目录进行排序?

嗨,我想根据数字排序目录列表​​.我有目录名称11-20,1-5,6-10,21-30等等.现在我想根据它中的数字对它们进行排序,以便1到N目录按顺序排列1-5,6-10,11-20,21-30.我使用以下代码,但它无法正常工作.

File[] dirList = mainDir.listFiles();
Arrays.sort(dirList);
Run Code Online (Sandbox Code Playgroud)

我是Java新文件和目录操作请提前帮助感谢.

java

2
推荐指数
1
解决办法
105
查看次数

从目录递归查找最大文件大小

嗨,我有一个目录,其中包含数千个.gz文件.现在我想找到最大的未压缩文件大小而不解压缩它.例如,dir1有1.gz,2.gz,3.gz等等,我想找到最大的未压缩文件大小而不解压缩它

我尝试了以下命令,但它无法正常工作

find . -type f -name '*.gz' | xargs zcat | xargs ls -1s
Run Code Online (Sandbox Code Playgroud)

请指导.我是bash和linux的新手.提前致谢.

unix bash shell

2
推荐指数
1
解决办法
449
查看次数

JDBC/数据库单元测试的最佳实践

我有与多个数据库(如 Sybase、Postgress、DB2 等)对话的代码。所以我有不同的模块,对这些数据库中的每一个都有不同的查询。我从 H2 和 JUnit 开始进行单元测试。由于 Sybase、Postgres、DB2 等查询在 H2 中不起作用,我开始将我现有的目标查询转换为 H2 可以接受的格式,我发现许多 SQL 函数,如 RANK()、分区、复杂连接更新、case when 等在 H2 中不受支持或无法按预期工作。我如何对这段代码进行单元测试?

我应该使用相应的数据库对每个 db 模块进行单元测试吗?例如,Sybase 模块是否具有与 Sybase 而不是 H2 对话的单元测试,或者如果我对我的数据库代码进行单元测试,我是否必须使用 H2?

java database junit unit-testing jdbc

2
推荐指数
1
解决办法
1119
查看次数

写入时如何控制Spark作业创建的输出零件文件的数量?

嗨,我有几个Spark作业,每天处理数千个文件。文件大小可能从MB到GB。完成工作后,我通常使用以下代码保存

finalJavaRDD.saveAsParquetFile("/path/in/hdfs"); OR
dataFrame.write.format("orc").save("/path/in/hdfs") //storing as ORC file as of Spark 1.4
Run Code Online (Sandbox Code Playgroud)

Spark作业会在最终输出目录中创建大量小零件文件。据我了解,Spark为每个分区/任务创建零件文件,如果我错了,请纠正我。我们如何控制Spark创建的零件文件数量?最后,我想使用这些parquet / orc目录创建Hive表,并且听说在没有大量小文件的情况下Hive运行缓慢。请指导我是Spark的新手。提前致谢。

hive apache-spark parquet apache-spark-sql

2
推荐指数
1
解决办法
9172
查看次数

Spark CSV 包无法处理字段内的 \n

我有一个 CSV 文件,我正在尝试使用Spark CSV 包加载它,但它没有正确加载数据,因为其中很少有字段\n,例如以下两行

"XYZ", "Test Data", "TestNew\nline", "OtherData" 
"XYZ", "Test Data", "blablablabla
\nblablablablablalbal", "OtherData" 
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码这是我使用直截了当parserLib的univocity在网上阅读它解决了多个问题,换行,但它似乎并不适合我的情况。

 SQLContext sqlContext = new SQLContext(sc);
    DataFrame df = sqlContext.read()
        .format("com.databricks.spark.csv")
        .option("inferSchema", "true")
        .option("header", "true")
        .option("parserLib","univocity")
        .load("data.csv");
Run Code Online (Sandbox Code Playgroud)

如何在以引号开头的字段中替换换行符。有没有更简单的方法?

scala apache-spark apache-spark-sql spark-csv apache-spark-1.6

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

Spark DataFrame根据列条件更改数据类型

我有一个大约1000列的Spark DataFrame df1,所有String类型列.现在我想根据列名的条件将df1的列类型从字符串转换为其他类型,如double,int等.例如,假设df1只有三列字符串类型

df1.printSchema

col1_term1: String
col2_term2: String 
col3_term3: String
Run Code Online (Sandbox Code Playgroud)

更改列类型的条件是,如果col name包含term1,则将其更改为int,如果col name包含term2,则将其更改为double,依此类推.我是Spark的新手.

scala apache-spark apache-spark-sql

2
推荐指数
1
解决办法
3292
查看次数

无法使用JDBC连接到Syabse数据库

嗨,我遇到的问题是没有使用jdbc连接到sybase数据库.我还把jconn.jar放在intellij 12.1的依赖中.

我得到了以下的赘述

java.sql.SQLException:没有为jdbc找到合适的驱动程序:jtds:sybase:some.com:8000/DBAQ02 at java.sql.DriverManager.getConnection(DriverManager.java:604)at java.sql.DriverManager.getConnection(DriverManager. java:221)at gbconnect.DBConnectPOC.main(DBConnectPOC.java:81)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl .invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:601)at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

请参阅以下代码.请指导我真的很生气.提前致谢.

try
            {
                Class.forName("com.sybase.jdbc3.jdbc.SybDriver");
            }
            catch (ClassNotFoundException e)
            {
                throw new IllegalArgumentException(
                        "Driver class '" + driverClassName + "' is not valid.", e);
            }

        }

        //jdbc:jtds:sybase://some.com:8000/DBAQ02
        Statement stmt = null;
        Connection conn = null;
        try
        {
            System.out.println(driverClassName + "://" + url);
            conn = DriverManager.getConnection("jdbc:jtds:sybase:some.com:8000/DBAQ02","sa","abc");
            stmt = conn.createStatement();
            stmt.executeUpdate(SQL_CREATE);
            System.out.println("Created table in given database...");
        }
Run Code Online (Sandbox Code Playgroud)

java sybase jdbc

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