java

阅读 / 问答 / 标签

java.lang.ClassNotFoundException: javax.validation.ValidatorFactory

你看看一下你的maven仓库的orghibernatehibernate-validator4.3.2.Final目录下面是不是有hibernate-validator-4.3.2.Final.jar和hibernate-validator-4.3.2.Final-sources.jar的以外其他的jar包。要是有的话删除了。

numeric 在Java中怎么定义,是什么类型的呢? float?还是double?还是long呢?

BigDecimal

如何用一个java程序来判断一个xml文件是否符合一个DTD的要求

javax.xml.validation API 使用三个类来验证文档:SchemaFactory、Schema 和 Validator。还大量使用了 TrAX 的 javax.xml.transform.Source 接口来表示 XML 文档。简言之,SchemaFactory 读取模式文档(通常是 XML 文件)并创建 Schema 对象。Schema 创建一个 Validator 对象。最后,Validator 对象验证表示为 Source 的 XML 文档。具体代码请参加一下地址:http://www.ibm.com/developerworks/cn/xml/x-javaxmlvalidapi.html

java apache validator 校验顺序问题

肯定有顺序了。从前至后啊。但是这个你也可以设置啊。validateor里,有一个depend on 属性,这个属性就是说,你当然这个校验依赖于哪一个,如果有这个属性的话,他就会先执行依懒的那个校验的啊。 默认的都是你的XML的字段顺序啊。这个是肯定的吧。不可能随机的。

java程序用whinle循环!

=======简单写法=========public class A{ public static void main(String[] args) { int i=0,t=0;while(i<=100){ t+=((i%2==0)?i:0); i++;}System.out.println("total="+t); }}

java 里 出现这样的for循环 是 for(A:B){ }

Collection确实是一个接口,一般用他的实现类来做,你可以考虑用ArrayList或者是HashSet或者是HashMap中的任何一个替换,他们在循环时用的是迭代器iterator。

java 中怎么让他显示hint信息

setTooltip

java控制面板mozilla选项不能保存

恐怕要 管理员 权限

java怎样读取html文件

使用Jsoup包可以读取编辑html文件,具体请自行百度吧。

java web 过滤器跟拦截器的区别和使用

第3点中1、在web.xml里面配置自定义的拦截器2、如何编写自定义的拦截器应该都是过滤器吧,是写错了吧

java 枚举enum定义的方法与位置。

你完全可以把enum看成标准的一个类。一样可以命名包,导入。枚举常量在比较时,需要使用equals或compareTo方法。switch选择时,可直接使用枚举常量值。

java 对象里面enum对象怎么赋值

public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String name; private int index; // 构造方法 private Color(String name, int index) { this.name = name; this.index = index; } // 普通方法 public static String getName(int index) { for (Color c : Color.values()) { if (c.getIndex() == index) { return c.name; } } return null; } // get set 方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }

java中的enum有什么用呢?

这个是列举的意思,比如你想要一个星期几的随机数,你可以把星期几的七天放进enum里面,这样随机出来的只有星期几,没有其他的数据。

java的enum到底有什么用?

枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。 1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。 2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。 3.Enum默认实现了java.lang.Comparable接口。 4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”. 5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。 6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。 7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。 了解了这些基本特性,我们来看看如何使用它们。 1.遍历所有有枚举值. 知道了有values方法,我们可以轻车熟路地用ForEach循环来遍历了枚举值了。 for (Color c: Color.values()) System.out.println(“find value:” + c); 2.在enum中定义方法和变量,比如我们可以为Color增加一个方法随机返回一个颜色。 public enum Color { Red, Green, Blue; private static int number = Color.values().length ; public static Color getRandomColor(){ long random = System.currentTimeMillis() % number; switch ((int) random){ case 0: return Color.Red; case 1: return Color.Green; case 2: return Color.Blue; default : return Color.Red; } } } 可以看出这在枚举类型里定义变量和方法和在普通类里面定义方法和变量没有什么区别。唯一要注意的只是变量和方法定义必须放在所有枚举值定义的后面,否则编译器会给出一个错误。 3.覆载(Override)toString, valueOf方法 前面我们已经知道enum提供了toString,valueOf等方法,很多时候我们都需要覆载默认的toString方法,那么对于enum我们怎么做呢。其实这和覆载一个普通class的toString方法没有什么区别。 …. public String toString(){ switch (this){ case Red: return "Color.Red"; case Green: return "Color.Green"; case Blue: return "Color.Blue"; default: return "Unknow Color"; } } …. 这时我们可以看到,此时再用前面的遍历代码打印出来的是 Color.Red Color.Green Color.Blue 而不是 Red Green Blue. 可以看到toString确实是被覆载了。一般来说在覆载toString的时候我们同时也应该覆载valueOf方法,以保持它们相互的一致性。 4.使用构造函数 虽然enum不可以有public的构造函数,但是我们还是可以定义private的构造函数,在enum内部使用。还是用Color这个例子。 public enum Color { Red("This is Red"), Green("This is Green"), Blue("This is Blue"); private String desc; Color(String desc){ this.desc = desc; } public String getDesc(){ return this.desc; } } 这里我们为每一个颜色提供了一个说明信息, 然后定义了一个构造函数接受这个说明信息。 要注意这里构造函数不能为public或者protected, 从而保证构造函数只能在内部使用,客户代码不能new一个枚举值的实例出来。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 5.实现特定的接口 我们已经知道enum可以定义变量和方法,它要实现一个接口也和普通class实现一个接口一样,这里就不作示例了。 6.定义枚举值自己的方法。 前面我们看到可以为enum定义一些方法,其实我们甚至可以为每一个枚举值定义方法。这样,我们前面覆载 toString的例子可以被改写成这样。 public enum Color { Red { public String toString(){ return "Color.Red"; } }, Green { public String toString(){ return "Color.Green"; } }, Blue{ public String toString(){ return "Color.Blue"; } }; } 从逻辑上来说这样比原先提供一个“全局“的toString方法要清晰一些。 总的来说,enum作为一个全新定义的类型,是希望能够帮助程序员写出的代码更加简单易懂在Java中,枚举类型本质上其实就是一个类,枚举中的常量都是该枚举类型的实例。虽然枚举类型有一些限制,比如不能再派生出子枚举类型,不能调用构造函数,不过我们仍然可以在枚举类型中定义构造函数、字段和方法

Java 中 Enum 如何继承?

Java字节码格式并不禁止继承java.lang.Enum,但是javac编译器硬性不让你继承java.lang.Enum。改用Scala编译器轻松继承Enum:classE(s:String,i:Int)extendsEnum[E](s,i)

为什么java要采用中间快取变数机制

为什么java要采用中间快取变数机制 对于自增运算++j与j++,由于加一的执行顺序不同,所以Java中有中间快取变数来储存其单个表示式的值,而j的自增自减的结果依然保留在原来的变数储存区。 因为本体是j的值,而单个表示式的值是中间产生的一个临时变数值,是在整条计算表示式结束后就可以抛弃的值,所以用个临时中间快取变数在放就可以了。这就可以实现自增自减运算在计算时值的加减1顺序差异产生的表示式与本体值差异的两个变数储存。 即 method_1方法中的 [java] view plaincopyprint? j = j++; 等同于: [java] view plaincopyprint? int temp = j; j = j + 1; j = temp; method_2方法中的 [java] view plaincopyprint? j = ++j; 等同于: [java] view plaincopyprint? j = j + 1; int temp = j; j = temp; Java中的中间快取变数机制怎么理解 对于自增运算++j与j++,由于加一的执行顺序不同,所以Java中有中间快取变数来储存其单个表示式的值,而j的自增自减的结果依然保留在原来的变数储存区。 因为本体是j的值,而单个表示式的值是中间产生的一个临时变数值,是在整条计算表示式结束后就可以抛弃的值,所以用个临时中间快取变数在放就可以了。这就可以实现自增自减运算在计算时值的加减1顺序差异产生的表示式与本体值差异的两个变数储存。 为什么 Android 要采用 Binder 作为 IPC 机制 1)从效能的角度 资料拷贝次数:Binder资料拷贝只需要一次,而管道、讯息伫列、Socket都需要2次,但共享记忆体方式一次记忆体拷贝都不需要;从效能角度看,Binder效能仅次于共享记忆体。 (2)从稳定性的角度 Binder是基于C/S架构的,简单解释下C/S架构,是指客户端(Client)和服务端(Server)组成的架构,Client端有什么需求,直接传送给Server端去完成,架构清晰明朗,Server端与Client端相对独立,稳定性较好;而共享记忆体实现方式复杂,没有客户与服务端之别, 需要充分考虑到访问临界资源的并发同步问题,否则可能会出现死锁等问题;从这稳定性角度看,Binder架构优越于共享记忆体。 仅仅从以上两点,各有优劣,还不足以支撑google去采用binder的IPC机制,那么更重要的原因是: (3)从安全的角度 传统Linux IPC的接收方无法获得对方程序可靠的UID/PID,从而无法鉴别对方身份;而Android作为一个开放的开源体系,拥有非常多的开发平台,App来源甚广,因此手机的安全显得额外重要;对于普通使用者,绝不希望从App商店下载偷窥隐射资料、后台造成手机耗电等等问题,传统Linux IPC无任何保护措施,完全由上层协议来确保。 Android为每个安装好的应用程式分配了自己的UID,故程序的UID是鉴别程序身份的重要标志,前面提到C/S架构,Android系统中对外只暴露Client端,Client端将任务传送给Server端,Server端会根据许可权控制策略,判断UID/PID是否满足访问许可权,目前许可权控制很多时候是通过弹出许可权询问对话方块,让使用者选择是否执行。Android 6.0,也称为Android M,在6.0之前的系统是在App第一次安装时,会将整个App所涉及的所有许可权一次询问,只要留意看会发现很多App根本用不上通讯录和简讯,但在这一次性许可权许可权时会包含进去,让使用者拒绝不得,因为拒绝后App无法正常使用,而一旦授权后,应用便可以胡作非为。 针对这个问题,google在Android M做了调整,不再是安装时一并询问所有许可权,而是在App执行过程中,需要哪个许可权再弹框询问使用者是否给相应的许可权,对许可权做了更细地控制,让使用者有了更多的可控性,但同时也带来了另一个使用者诟病的地方,那也就是许可权询问的弹框的次数大幅度增多。对于Android M平台上,有些App开发者可能会写出让手机异常频繁弹框的App,企图直到使用者授权为止,这对使用者来说是不能忍的,使用者最后吐槽的可不光是App,还有Android系统以及手机厂商,有些使用者可能就跳果粉了,这还需要广大Android开发者以及手机厂商共同努力,共同打造安全与体验俱佳的Android手机。 Android中许可权控制策略有SELinux等多方面手段,下面列举从Binder的一个角度的许可权控制: Android原始码的Binder许可权是如何控制? -Gityuan的回答 传统IPC只能由使用者在资料包里填入UID/PID;另外,可靠的身份标记只有由IPC机制本身在核心中新增。其次传统IPC访问接入点是开放的,无法建立私有通道。从安全形度,Binder的安全性更高。 说到这,可能有人要反驳,Android就算用了Binder架构,而现如今Android手机的各种流氓软体,不就是干著这种偷窥隐射,后台偷偷跑流量的事吗?没错,确实存在,但这不能说Binder的安全性不好,因为Android系统仍然是掌握主控权,可以控制这类App的流氓行为,只是对于该采用何种策略来控制,在这方面android的确存在很多有待进步的空间,这也是google以及各大手机厂商一直努力改善的地方之一。在Android 6.0,google对于app的许可权问题作为较多的努力,大大收紧的应用许可权;另外,在Google举办的Android Bootcamp 2016大会中,google也表示在Android 7.0 (也叫Android N)的许可权隐私方面会进一步加强加固,比如SELinux,Memory safe language(还在research中)等等,在今年的5月18日至5月20日,google将推出Android N。 (4)从语言层面的角度 大家多知道Linux是基于C语言(面向过程的语言),而Android是基于Java语言(面向物件的语句),而对于Binder恰恰也符合面向物件的思想,将程序间通讯转化为通过对某个Binder物件的引用呼叫该物件的方法,而其独特之处在于Binder物件是一个可以跨程序引用的物件,它的实 *** 于一个程序中,而它的引用却遍布于系统的各个程序之中。可以从一个程序传给其它程序,让大家都能访问同一Server,就像将一个物件或引用赋值给另一个引用一样。Binder模糊了程序边界,淡化了程序间通讯过程,整个系统仿佛运行于同一个面向物件的程式之中。从语言层面,Binder更适合基于面向物件语言的Android系统,对于Linux系统可能会有点“水土不服”。 另外,Binder是为Android这类系统而生,而并非Linux社群没有想到Binder IPC机制的存在,对于Linux社群的广大开发人员,我还是表示深深佩服,让世界有了如此精湛而美妙的开源系统。也并非Linux现有的IPC机制不够好,相反地,经过这么多优秀工程师的不断打磨,依然非常优秀,每种Linux的IPC机制都有存在的价值,同时在Android系统中也依然采用了大量Linux现有的IPC机制,根据每类IPC的原理特性,因时制宜,不同场景特性往往会采用其下最适宜的。比如在Android OS中的Zygote程序的IPC采用的是Socket(套接字)机制,Android中的Kill Process采用的signal(讯号)机制等等。而Binder更多则用在system_server程序与上层App层的IPC互动。 (5) 从公司战略的角度 总所周知,Linux核心是开源的系统,所开放原始码许可协议GPL保护,该协议具有“病毒式感染”的能力,怎么理解这句话呢?受GPL保护的Linux Kernel是执行在核心空间,对于上层的任何类库、服务、应用等执行在使用者空间,一旦进行SysCall(系统呼叫),呼叫到底层Kernel,那么也必须遵循GPL协议。 而Android 之父 Andy Rubin对于GPL显然是不能接受的,为此,Google巧妙地将GPL协议控制在核心空间,将使用者空间的协议采用Apache-2.0协议(允许基于Android的开发商不向社群反馈原始码),同时在GPL协议与Apache-2.0之间的Lib库中采用BSD证授权方法,有效隔断了GPL的传染性,仍有较大争议,但至少目前缓解Android,让GPL止步于核心空间,这是Google在GPL Linux下 开源与商业化共存的一个成功典范。 Android是基于linux核心的。所以linux支援的IPC,android都用到了。比如命名管道,共享记忆体。 除此外,android还使用了一套自己独特的IPC方式 binder. 主要用于2个程序间的远端呼叫。但是这里就牵扯远端呼叫如何传递引数,如何回传结果。 这需要呼叫者对资料进行打包和解包,是一个繁琐的过程。为此,android引入了aidl(android interface description launguage). 开发人员定义好aidl,android会根据aidl的描述生产stub程式码,帮助呼叫者对资料打包,解包。开发人员所要做的事是继承stub程式码,实现stub程式码中的函式。这些函式是你在aidl中定义的。 前面人都说了Binder的优点,我来讲故事 1. 当年Andy Rubin有个公司 Palm 做掌上装置的 就是当年那种PDA 有个系统叫PalmOS 后来palm被收购了以后 Andy Rubin 创立了Android 2. Palm收购过一个公司叫 Be 里面有个移动系统 叫 BeOS 程序通讯自己学了个实现 叫Binder 由一个叫 Dianne Hackbod的人开发并维护 后来Binder 也被用到了 PalmOS里 3. Android创立了以后 Andy从Palm带走了一大批人,其中就有Dianne。Dianne成为安卓系统总架构师。 如果你是她,你会选择用a.Linux已有的程序通讯手段吗? 不会 要不当年也不会搞个新东西出来 b. 重写一个新东西 也不会 binder反正是自己写的开源库 c. 用binder 已经被两个公司用过 而且是自己写的 可靠放心 我是她我就选C 你可以看到 如果当年Dianne没有加入Be 或者Be没有被收购 ,又或者Dianne没有和Andy加入Android 那Android也不一定会用binder。 1.首先Binder采用了linux的优秀的记忆体管理技术,在通过内科空间传递资料时,能保证资料的正确性。 2.使用使用者空间无法访问的记忆体空间来交换资料,保证了IPC的安全性

java中的enum是整数。

java中的enum是整数。 A.正确B.错误正确答案:错误

enum在java中是什么意思

枚举 相当于多例设计模式

java中枚举用来干什么的?

枚举是一种规范它规范了参数的形式,这样就可以不用考虑类型的不匹配并且显式的替代了int型参数可能带来的模糊概念 枚举像一个类,又像一个数组。Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。 当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。 1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例。 2.所有枚举值都是public , static , final的。注意这一点只是针对于枚举值,我们可以和在普通类里面定义 变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。 3.Enum默认实现了java.lang.Comparable接口。 4.Enum覆载了了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”. 5.Enum提供了一个valueOf方法,这个方法和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue.因此我们在自己重写toString方法的时候就要注意到这一点,一把来说应该相对应地重写valueOf方法。 6.Enum还提供了values方法,这个方法使你能够方便的遍历所有的枚举值。 7.Enum还有一个oridinal的方法,这个方法返回枚举值在枚举类种的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。 了解了这些基本特性,我们来看看如何使用它们。 1.遍历所有有枚举值. 知道了有values方法,我们可以轻车熟路地用ForEach循环来遍历了枚举值了。 for (Color c: Color.values()) System.out.println(“find value:” + c); 2.在enum中定义方法和变量,比如我们可以为Color增加一个方法随机返回一个颜色。 public enum Color { Red, Green, Blue; private static int number = Color.values().length ; public static Color getRandomColor(){ long random = System.currentTimeMillis() % number; switch ((int) random){ case 0: return Color.Red; case 1: return Color.Green; case 2: return Color.Blue; default : return Color.Red; } } } 可以看出这在枚举类型里定义变量和方法和在普通类里面定义方法和变量没有什么区别。唯一要注意的只是变量和方法定义必须放在所有枚举值定义的后面,否则编译器会给出一个错误。 3.覆载(Override)toString, valueOf方法 前面我们已经知道enum提供了toString,valueOf等方法,很多时候我们都需要覆载默认的toString方法,那么对于enum我们怎么做呢。其实这和覆载一个普通class的toString方法没有什么区别。 …. public String toString(){ switch (this){ case Red: return "Color.Red"; case Green: return "Color.Green"; case Blue: return "Color.Blue"; default: return "Unknow Color"; } } …. 这时我们可以看到,此时再用前面的遍历代码打印出来的是 Color.Red Color.Green Color.Blue 而不是 Red Green Blue. 可以看到toString确实是被覆载了。一般来说在覆载toString的时候我们同时也应该覆载valueOf方法,以保持它们相互的一致性。 4.使用构造函数 虽然enum不可以有public的构造函数,但是我们还是可以定义private的构造函数,在enum内部使用。还是用Color这个例子。 public enum Color { Red("This is Red"), Green("This is Green"), Blue("This is Blue"); private String desc; Color(String desc){ this.desc = desc; } public String getDesc(){ return this.desc; } } 这里我们为每一个颜色提供了一个说明信息, 然后定义了一个构造函数接受这个说明信息。 要注意这里构造函数不能为public或者protected, 从而保证构造函数只能在内部使用,客户代码不能new一个枚举值的实例出来。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 5.实现特定的接口 我们已经知道enum可以定义变量和方法,它要实现一个接口也和普通class实现一个接口一样,这里就不作示例了。 6.定义枚举值自己的方法。 前面我们看到可以为enum定义一些方法,其实我们甚至可以为每一个枚举值定义方法。这样,我们前面覆载 toString的例子可以被改写成这样。 public enum Color { Red { public String toString(){ return "Color.Red"; } }, Green { public String toString(){ return "Color.Green"; } }, Blue{ public String toString(){ return "Color.Blue"; } }; } 从逻辑上来说这样比原先提供一个“全局“的toString方法要清晰一些。 总的来说,enum作为一个全新定义的类型,是希望能够帮助程序员写出的代码更加简单易懂在Java中,枚举类型本质上其实就是一个类,枚举中的常量都是该枚举类型的实例。虽然枚举类型有一些限制,比如不能再派生出子枚举类型,不能调用构造函数,不过我们仍然可以在枚举类型中定义构造函数、字段和方法

Java 中 Enum 如何继承?

Java 5新增的enum关键词,可以定义枚举类。该类是一个特殊的类,可以定义自己的field、方法、可以实现接口,也可以定义自己的构造器。 但枚举类使用enum定义后在编译后默认继承了java.lang.Enum类,而不是普通的继承Object类。enum声明类继承了Serializable和Comparable两个接口。且采用enum声明后,该类会被编译器加上"final"声明(同String),故该类是无法继承的。枚举类的内部定义的枚举值就是该类的实例(且必须在第一行定义,当类初始化时,这些枚举值会被实例化)。 由于这些枚举值的实例化是在类初始化阶段,所以应该将枚举类的构造器(如果存在),采用private声明(这种情况下默认也是private)。另外补充一点,由于JVM类初始化是线程安全的,所以可以采用枚举类实现一个线程安全的单例模式。

求java代码获取上个月最后一天最后一秒的时间

public String getLastMonthDay() { Calendar cal = Calendar.getInstance(); Date date = new Date(); cal.setTime(date); int year = 0; int month = cal.get(Calendar.MONTH); // 上个月月份 // int day1 = cal.getActualMinimum(Calendar.DAY_OF_MONTH);//起始天数 int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH); // 结束天数 System.out.println("###last month:" + month); if (month == 0) { year = cal.get(Calendar.YEAR) - 1; month = 12; } else { year = cal.get(Calendar.YEAR); } String endDay = year + "-" + month + "-" + day; return endDay+" 23:59:59" }

用java写程序求出今天是几年几月几日?今年第几天?求大神。

今天是指系统的时间吗?格式化一下不就行了

java 某年某月第几周第几天 是几月几号

2楼正解啊

JAVA中如何更改时间?

JAVA中获取当前系统时间2011-07-06 20:45 并格式化输出:import java.util.Date;import java.text.SimpleDateFormat;public class NowString {public static void main(String[] args) {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式System.out.println(df.format(new Date()));// new Date()为获取当前系统时间}}设置时间,推荐 使用java.util.Calendar类来进行操作,import java.util.Date;import java.util.Calendar;import java.text.SimpleDateFormat;public class TestDate{public static void main(String[] args){Date now = new Date();SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//可以方便地修改日期格式String hehe = dateFormat.format( now );System.out.println(hehe);Calendar c = Calendar.getInstance();//可以对每个时间域单独修改int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH);int date = c.get(Calendar.DATE);int hour = c.get(Calendar.HOUR_OF_DAY);int minute = c.get(Calendar.MINUTE);int second = c.get(Calendar.SECOND);System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);}}

java中怎么在获取的系统时间上推迟一周,或者一年

推迟一周示例:Calendar curr = Calendar.getInstance();curr.set(Calendar.DAY_OF_MONTH,curr.get(Calendar.DAY_OF_MONTH)+7);Date date=curr.getTime();推迟一个月示例:Calendar curr = Calendar.getInstance();curr.set(Calendar.MONTH,curr.get(Calendar.MONTH)+1);Date date=curr.getTime();推迟一年示例:Calendar curr = Calendar.getInstance();curr.set(Calendar.YEAR,curr.get(Calendar.YEAR)+1);Date date=curr.getTime();

在java中如何通过一个月份,获得该月份的第一天的日期?

//获得下个月第一天的日期 public String getNextMonthFirst(){ String str = ""; SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); Calendar lastDate = Calendar.getInstance(); lastDate.add(Calendar.MONTH,1);//减一个月 lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天 str=sdf.format(lastDate.getTime()); return str; }

java怎么统计出当年有多少个周,并列出那些

计算一年有多少个周的思路:首先,每年至少有52个周,至多有53个周,取决于周一是在哪年(也可以定位周日,这个是由需求决定的),以下是详细代码,其中判断哪一天决定了当周是属于哪一年的逻辑是写在getYearWeekEndDay中。/*** 返回指定年度的所有周。List中包含的是String[2]对象<br>* string[0]本周的开始日期,string[1]是本周的结束日期。<br>* 日期的格式为yyyy-MM-dd。<br>* 每年的第一个周,必须包含星期一且是完整的七天。<br>* 例如:2009年的第一个周开始日期为2009-01-05,结束日期为2009-01-11。 <br>* 星期一在哪一年,那么包含这个星期的周就是哪一年的周。<br>* 例如:2008-12-29是星期一,2009-01-04是星期日,哪么这个周就是2008年度的最后一个周。<br>** @param year 格式 yyyy ,必须大于1900年度 小于9999年* @return*/public static List<String[]> getWeeksByYear(final int year){if(year<1900 || year >9999){throw new NullPointerException("年度必须大于等于1900年小于等于9999年");}//实现思路,首先计算当年有多少个周,然后找到每个周的开始日期和结束日期// Calendar calendar = new GregorianCalendar(); // // 在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar。 // calendar.setFirstDayOfWeek(Calendar.MONDAY); //设置每周的第一天为星期一 // calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //每周从周一开始 // 上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。 // calendar.setMinimalDaysInFirstWeek(7); //设置每周最少为7天 // calendar.set(Calendar.YEAR, year); // 设置年度为指定的年// //首先计算当年有多少个周,每年都至少有52个周,个别年度有53个周int weeks = getWeekNumByYear(year); // System.out.println(year+"共有"+weeks+"个周");List<String[]> result = new ArrayList<String[]>(weeks);for(int i=1;i<=weeks;i++){String[] tempWeek = new String[2];tempWeek[0] = getYearWeekFirstDay(year,i);tempWeek[1] = getYearWeekEndDay (year,i); //或者使用下面的代码,不过发现效率更低 // tempWeek[0] = getDateAdd(firstWeekDay,(i-1)*7+0); // tempWeek[1] = getDateAdd(firstWeekDay,(i-1)*7+6);result.add(tempWeek); // System.out.println(i+"="+tempWeek[0]+"_"+tempWeek[1]);}

java计算求某年某月某日是星期几?

import javax.swing.JOptionPane; class nian{ public static void main(String args[]){ int y,m,d,N,s,z,a; y=Integer.parseInt(JOptionPane.showInputDialog("请输入一个年号:")); m=Integer.parseInt(JOptionPane.showInputDialog("请输入月份:")); d=Integer.parseInt(JOptionPane.showInputDialog("请输入日期:")); String s1=y+"年"+m+"月"+d+"日"; for (;m<=2;m+=12,y=y-1);{ z=(y/4)-(y/100)+(y/400); a=3*(m+1)/5; N=d+2*m+a+y+z+1; s=N%7; s1=s1+"是星期"+s; JOptionPane.showMessageDialog(null,s1); } } }

java Calendar WEEK_OF_YEAR的问题

获取第几周的话: c.get(Calendar.WEEK_OF_YEAR);Calendar.WEEK_OF_YEAR 是常数。

java计算两日期间隔天数

import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class CompareTime { public static void main(String[] args) { String t1 = "1990-1-1"; String t2 = "2000-1-1"; try { System.out.println(CompareTime.getBetweenDays(t1, t2)); } catch (ParseException e) { e.printStackTrace(); } } public static int getBetweenDays(String t1, String t2) throws ParseException { DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); int betweenDays = 0; Date d1 = format.parse(t1); Date d2 = format.parse(t2); Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); c1.setTime(d1); c2.setTime(d2); // 保证第二个时间一定大于第一个时间 if (c1.after(c2)) { c1 = c2; c2.setTime(d1); } int betweenYears = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR); betweenDays = c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR); for (int i = 0; i < betweenYears; i++) { c1.set(Calendar.YEAR, (c1.get(Calendar.YEAR) + 1)); betweenDays += c1.getMaximum(Calendar.DAY_OF_YEAR); } return betweenDays; }} 这个应该可以的,以前用过,试试看

java中如何获取日期时间中的星期几?

我的方法:Date date = new Date(Calendar.DAY_OF_WEEK);Calendar cal = new GregorianCalendar();cal.setTime(date);cal.get(Calendar.DAY_OF_WEEK);题主,为什么不用Date?分享一下。

如何用java比较两个时间或日期的大小

首先按照一定的格式输入两个日期的字符串然后用simpledateformat类转换成date实例date1,date2然后calendarcal1=calendar.getinstance();calendarcal2=calendar.getinstance();cal1.settime(date1);cal2.settime(date2);这样你就有了两个表示所输入日期的calendar实例了calendar可以做很多事比如用cal1.after(cal2)或者cal1.before(cal2)或者cal1.equals(cal2)或者cal1.compareto(cal2)来比较两个日期时间先后比如cal.get(calendar.year)可以得到表示该日期年份的整数同理cal.get(calendar.month)可以得到月份甚至可以用cal.gettimeinmillis()得到表示该日期的毫秒数有了这些方法,简单的计算之后就可以得到需要的相差的信息如果楼主是来求现成的源代码的--我没有

java 中 怎么判断今天的日期 是单号 还是双号 还有 怎么判断今天星期几?应用calendar吗?要怎么做?

1)取得星期:Calendar cal=Calendar.getInstance(); cal.set(Calendar.YEAR, 2013); cal.set(Calendar.MONTH, 9); cal.set(Calendar.DAY_OF_MONTH, 3); int weekno=cal.get(Calendar.WEEK_OF_YEAR);2)使用weekno取余

问下java中怎么在获取的系统时间上,推迟一周,,或者一年啊?

JAVA的Calendar类有一个方法add方法可以使用,例如calendar.add(Calendar.WEEK_OF_YEAR, -1);表示把时间向上推一周,calendar.add(Calendar.YEAR, -1);表示把时间向上推一年。下面是一个具体的实例:public class DateCalcTest{ public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); Date date = new Date(System.currentTimeMillis()); calendar.setTime(date);// calendar.add(Calendar.WEEK_OF_YEAR, -1); calendar.add(Calendar.YEAR, -1); date = calendar.getTime(); System.out.println(date); }}你看一下。

java如何得到年月日。

上面的date.getMonth()要+1的。。。

JAVA 如何单独取得"年","月","日"...

1、取得当前年月日 Calendar c=new GregorianCalendar();//新建日期对象 int year=c.get(Calendar.YEAR);//获取年份 int month=c.get(Calendar.MONTH);//获取月份 int day=c.get(Calendar.DATE);//获取日期 int minute=c.get(Calendar.MINUTE);//分 int hour=c.get(Calendar.HOUR);//小时 int second=c.get(Calendar.SECOND);//秒

java中,现在知道总天数 days, 如何利用 Calendar 类,得到这些天数是多少年years?

不用吧,对天数取余就行了吧

java 怎么获取一个时间的年月日

Calendar cal = Calendar.getInstance();// 不加下面2行,就是取当前时间前一个月的第一天及最后一天cal.set(Calendar.YEAR,2012) ;cal.set(Calendar.MONTH, 6);cal.set(Calendar.DAY_OF_MONTH, 1);cal.add(Calendar.DAY_OF_MONTH, -1); Date lastDate = cal.getTime();//当前月最后一天cal.set(Calendar.DAY_OF_MONTH, 1); Date firstDate = cal.getTime();//当前月第一天

Java用Calendar如何每秒取一次系统时间

1楼可以为Calender aa = Calender.getI...;Date d = aa.getTime();system.out.print(d);

java中,我已经知道了一个时间,如何实现在这个时间的基础上一年后 的前一天时间。

假设date变量为你知道的时间。import org.apache.commons.lang.time.DateUtils;date = DateUtils.addYears(date, 1);//一年后date = DateUtils.addDays(date, -1);//前一天

java中如何用calendar类计算2个时间中间差多少天

public static long daysBetween(Date d1, Date d2) { if ( (d1 == null) || (d2 == null)) { return 0; } long ld1 = d1.getTime(); long ld2 = d2.getTime(); long days = (long) ( (ld2 - ld1) / 86400000); return days; }

在java里怎么做万年历,一年的啊

先上张效果图:以下是实现代码:/*日历*/import java.awt.*;import java.awt.event.*;import java.util.*;import java.util.regex.Pattern;import javax.swing.*;public class Demo28 extends JFrame {int m = 1;String[] monthchoose = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10","11", "12" }; // 存放月份的字符数组String[] columnNames = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; // 存放星期的字符数组Calendar ca = Calendar.getInstance();Container contentPane = getContentPane();Vector<String> vector = new Vector<String>();String[][] date = new String[6][7]; // 表格的显示数据的格式TextField tf; // 文本框的值代表的是年份JComboBox jb;JTable table; // 把日期用table的方式显示出来public void getDate(String year, String month, String week, int Max_Day) {int n = 0, b = 0;// 动态把传进来月份的天数存放到容器里for (int j = 1; j <= Max_Day; j++) {vector.add(String.valueOf(j));}//每次往table里添加数据的时候,都预先把原table里 的 数据清空for(int x = 0;x<date.length;x++){for(int y = 0;y<date[x].length;y++){date[x][y] = null;}}// 根据传进来月份的第一天是星期几,来构建Tablefor (int a = Integer.parseInt(week) - 1; a < date[0].length; a++) {date[0][a] = new String((String) vector.toArray()[n]);n++;}for (int i = 1; i < date.length; i++) {for (int j = 0; j < date[i].length; j++) {if (n < vector.size()) {date[i][j] = new String((String) vector.toArray()[n]);n++;} elsebreak;}}// 把容器里的数据全部清除,以备下次再存放新的数据while (b < vector.size()) {vector.remove(b);}}public void chooseDate(String day) {JLabel label = new JLabel();for (int y = 0; y < date.length; y++) {for (int z = 0; z < date[y].length; z++) {System.out.print(date[y][z] + " ");System.out.println(day);if (date[y][z] != null) {if (date[y][z].equals(day)) {table.setSelectionBackground(Color.yellow);return;}}}}}public void paint() {setTitle("日历");setBounds(200, 200, 350, 178);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});int m = 0;String year = String.valueOf(ca.get(Calendar.YEAR)); // 得到当前的系统时间的年份,并把这个数值存放到year这个变量里String month = String.valueOf(ca.get(Calendar.MONTH) + 1); // 得到当前的系统时间的月份,并把这个数值存放到month这个变量里String day = String.valueOf(ca.get(Calendar.DATE)); // 得到当前的系统时间的日期,并把这个数值存放到day这个变量里ca.set(Calendar.DATE, 1); // 把Calendar 对象的DATA设置为1String week = String.valueOf(ca.get(Calendar.DAY_OF_WEEK)); // 根据设置的Calendar对象,计算出这个月第一天是星期几int Max_Day = ca.getActualMaximum(Calendar.DATE); // 得到当前系统时间月份有多少天getDate(year, month, week, Max_Day);// 从月份数组里取出与当前系统时间一样的月份值for (int i = 0; i < monthchoose.length; i++) {if (monthchoose[i].equals(month)) {m = i;}}JToolBar toolBar = new JToolBar();JButton b1 = new JButton("<");b1.addMouseListener(new myMouseListener1());JButton b2 = new JButton(">");b2.addMouseListener(new myMouseListener2());JLabel j1 = new JLabel("年");JLabel j2 = new JLabel("月");tf = new TextField(5);tf.addKeyListener(new myKeyListener());tf.setText(year);jb = new JComboBox(monthchoose);jb.setSelectedIndex(m);jb.addActionListener(new myActionListener3());table = new JTable(date, columnNames);//table.addMouseListener(new tableMouseListener());table.setPreferredScrollableViewportSize(new Dimension(350, 150));JScrollPane jsp = new JScrollPane(table);contentPane.add(jsp, BorderLayout.CENTER);chooseDate(day);toolBar.add(b1);toolBar.add(tf);toolBar.add(b2);toolBar.add(j1);toolBar.add(jb);toolBar.add(j2);toolBar.setLocation(0, 0);toolBar.setSize(400, 15);contentPane.add(toolBar, BorderLayout.NORTH);setVisible(true);new Thread(new PaintThread()).start(); // 调用内部类PaintThread,根据里面的设置来重画}public static void main(String[] args) {Demo28 d28 = new Demo28();d28.paint();}// 鼠标单击左边按钮触发的事件class myMouseListener1 extends MouseAdapter {public void mouseClicked(MouseEvent e) {String str = tf.getText().trim(); // 得到文本框的值int i = Integer.parseInt(str);i = i - 1;tf.setText(String.valueOf(i));String new_year = String.valueOf(i); // 把表示年份的文本框的值存放到变量new_year里ca.set(Calendar.YEAR, i); // 把Calendar 对象的YEAR设置为用户设置的年份String new_month = (String) jb.getSelectedItem(); // 得到月份值ca.set(Calendar.MONTH, Integer.parseInt(new_month) - 1); // 把Calendar对象的MONTH设置为用户设置的月份ca.set(Calendar.DATE, 1); // 把Calendar 对象的DATA设置为1String new_week = String.valueOf(ca.get(Calendar.DAY_OF_WEEK)); // 根据设置的Calendar对象,计算出这个月第一天是星期几int Max_Day = ca.getActualMaximum(Calendar.DATE); // 根据设置后的Calendar对象计算这个月份有多少天getDate(new_year, new_month, new_week, Max_Day);}}class myKeyListener extends KeyAdapter {public void keyReleased(KeyEvent e) {try {int i = Integer.parseInt(tf.getText().trim());int key = e.getKeyCode();if (key == KeyEvent.VK_ENTER) {String new_year = String.valueOf(i);ca.set(Calendar.YEAR, i); // 把Calendar对象的YEAR设置为用户设置的年份String new_month = (String) jb.getSelectedItem(); // 得到月份值ca.set(Calendar.MONTH, Integer.parseInt(new_month) - 1); // 把Calendar对象的MONTH设置为用户设置的月份ca.set(Calendar.DATE, 1); // 把Calendar 对象的DATA设置为1String new_week = String.valueOf(ca.get(Calendar.DAY_OF_WEEK)); // 根据设置的Calendar对象,计算出这个月第一天是星期几int Max_Day = ca.getActualMaximum(Calendar.DATE); // 根据设置后的Calendar对象计算这个月份有多少天getDate(new_year, new_month, new_week, Max_Day);}} catch (NumberFormatException excption) {System.out.println("你输入的年份不正确!");}}}// 鼠标单击右边按钮触发的事件class myMouseListener2 extends MouseAdapter {public void mouseClicked(MouseEvent e) {String str = tf.getText().trim();int i = Integer.parseInt(str);i = i + 1;tf.setText(String.valueOf(i));String new_year = String.valueOf(i); // 把表示年份的文本框的值存放到变量new_year里ca.set(Calendar.YEAR, i); // 把Calendar 对象的YEAR设置为用户设置的年份String new_month = (String) jb.getSelectedItem(); // 得到月份值ca.set(Calendar.MONTH, Integer.parseInt(new_month) - 1); // 把Calendar对象的MONTH设置为用户设置的月份ca.set(Calendar.DATE, 1); // 把Calendar 对象的DATA设置为1String new_week = String.valueOf(ca.get(Calendar.DAY_OF_WEEK)); // 根据设置的Calendar对象,计算出这个月第一天是星期几int Max_Day = ca.getActualMaximum(Calendar.DATE); // 根据设置后的Calendar对象计算这个月份有多少天getDate(new_year, new_month, new_week, Max_Day);}}// 鼠标单击选择框触发的事件class myActionListener3 implements ActionListener {public void actionPerformed(ActionEvent e) {String new_year = String.valueOf(ca.get(Calendar.YEAR)); // 把表示年份的文本框的值存放到变量new_year里String new_month = (String) jb.getSelectedItem(); // 得到用户设置的月份ca.set(Calendar.MONTH, Integer.parseInt(new_month) - 1); // 把Calendar对象的月份值设置为用户定义的月份ca.set(Calendar.DATE, 1); // 把Calendar 对象的DATA设置为1String new_week = String.valueOf(ca.get(Calendar.DAY_OF_WEEK)); // 根据设置的Calendar对象,计算出这个月第一天是星期几int Max_Day = ca.getActualMaximum(Calendar.DATE); // 根据设置后的Calendar对象计算这个月份有多少天getDate(new_year, new_month, new_week, Max_Day);}}// 重画组件private class PaintThread implements Runnable {public void run() {while (true) {repaint();try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}}}}

用java(用calendar类)写一个万年历,输入年并且显示当年的日历

下面是我两年前写的一个方法,_UID为空就行。类你自己建 /** * 日历的生成代码 * @param _year * @param _month * @param _uid * @return * @throws ParseException */ public String getCalendar(String _year,String _month,String _uid) throws ParseException{ /* 说明: * date = df.parse("2006-11-01"); * 只需要修改上面的日期 */ String rtn = null; Date() date = null; int day = 0; int days = 0; Date()Format df = new SimpleDate()Format("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); date = df.parse(_year+"-"+_month+"-01"); c.setTime(date); day =date.getDay(); Date dt = new Date(); days = c.getActualMaximum(Calendar.DAY_OF_MONTH); rtn = "<table width=100% align=center border=1 cellspacing=0 cellpadding=3 bordercolor=#6699CC style=border-collapse:collapse> "; rtn = rtn + " <tr bgcolor=#66ccff> "; rtn = rtn + " <td align=center>星期日</td> "; rtn = rtn + " <td align=center>星期一</td> "; rtn = rtn + " <td align=center>星期二</td> "; rtn = rtn + " <td align=center>星期三</td> "; rtn = rtn + " <td align=center>星期四</td> "; rtn = rtn + " <td align=center>星期五</td> "; rtn = rtn + " <td align=center>星期六</td> "; rtn = rtn + " </tr> "; rtn = rtn + " <tr> "; int i=0; for(;i<day;i++){ if(i%7 ==0 && i != 0){ rtn = rtn + " </tr> "; rtn = rtn + " <tr> "; } rtn = rtn + " <td>"; rtn = rtn + " "; rtn = rtn + "</td> "; } for(i=day;i<(days+day);i++){ if(i%7 ==0){ rtn = rtn + " </tr> "; rtn = rtn + " <tr bgcolor=#ffffcc> "; } rtn = rtn + " <td valign=top>"; if(df.format(dt).equals(_year+"-"+_month+"-"+((i-day+1)<10?"0"+String.valueOf(i-day+1):String.valueOf(i-day+1)))){ rtn = rtn + "<font size=2 color="#FF0000"><b>" + String.valueOf((i-day+1)) + "</b></font>"; }else{ rtn = rtn + "<font size=2>"+String.valueOf((i-day+1))+"</font>"; } rtn = rtn + "</td> "; } for(i=(days+day);i<35;i++){ if(i%7 ==0){ rtn = rtn + " </tr> "; rtn = rtn + " <tr> "; } rtn = rtn + " <td>"; rtn = rtn + " "; rtn = rtn + "</td> "; } rtn = rtn + " </tr> "; rtn = rtn + "</table>"; c.clear(); return rtn; }

java中Calendar类的问题,为什么程序运行结果和现实中相差一个星期

import java.util.*;import javax.swing.JOptionPane;public class test{ public static void main(String args[ ]) { String str=JOptionPane.showInputDialog("输入第一个日期的年份:"); int yearOne=Integer.parseInt(str); str=JOptionPane.showInputDialog("输入该年的月份:"); int monthOne=Integer.parseInt(str); str=JOptionPane.showInputDialog("输入该月份的日期:"); int dayOne=Integer.parseInt(str); str=JOptionPane.showInputDialog("输入第二个日期的年份:"); int yearTwo=Integer.parseInt(str); str=JOptionPane.showInputDialog("输入该年的月份:"); int monthTwo=Integer.parseInt(str); str=JOptionPane.showInputDialog("输入该月份的日期:"); int dayTwo=Integer.parseInt(str); Calendar calendar=Calendar.getInstance(); //初始化日历对象 calendar.set(yearOne, monthOne, dayOne); //将calendar的时间设置为yearOne年monthOne月dayOne日 long timeOne= calendar.getTimeInMillis() ; //calendar表示的时间转换成毫秒 System.out.println(timeOne); calendar.set(yearTwo, monthTwo, dayTwo); //将calendar的时间设置为yearTwo年monthTwo月dayTwo日 long timeTwo= calendar.getTimeInMillis(); //calendar表示的时间转换成毫秒。 Date date1=new Date(timeOne); // 用timeOne做参数构造date1 Date date2=new Date(timeTwo); // 用timeTwo做参数构造date2 if(date2.equals(date1)) { System.out.println("两个日期的年、月、日完全相同"); } else if(date2.after(date1)) { System.out.println("您输入的第二个日期大于第一个日期"); } else if(date2.before(date1)) { System.out.println("您输入的第二个日期小于第一个日期"); } long days=Math.abs((timeOne-timeTwo)/1000/60/60/24);;//计算两个日期相隔天数 System.out.println(yearOne+"年"+monthOne+"月"+dayOne+"日和" +yearTwo+"年"+monthTwo+"月"+dayTwo+"相隔"+days+"天"); } }

java的Calendar类的问题,为什么打印YEAR字段的结果是1的?

这是个常量啊,类. 属性,你进类里面看一下就知道了,他定义的就是1你把它当作参数来用就好了calendar. get(calendar. year) 自己区分大小写,这个样子的,多去看下手册就知道怎么用了

关于JAVA中calendar.get(Calendar.Year)的问题

Calendar calendar = Calendar.getInstance();int year = calendar.get(Calendar.Year);System.out.println("calendar.year = " + year);输出结果为2011.即获得当前calendar的年份,详细的可以参考JDK API的java.util.Calendar

java运算符

你把API 里面的东西 放上去 那不跟没说一样吗? int zhangScore 这句的意思是你定义了一个变量zhangScore 为int类型。但是没有赋值。 然后你这句zhangScore = wangScore; 是给zhangScore 这个变量赋值,值就是wangScore的值。所以张萌的值于王浩的相等 也是80(因为这句zhangScore = wangScore)注意这个等号是赋值不是相等。 至于那个加号,"张萌的成绩是 :"+zhangScore 这句就是将"张萌的成绩是 :"与zhangScore 这个字符串连接。但是在这之前zhangScore 是int类型。他只要是和字符串连接了 他就业变成字符串了。 多看看基础吧~~~

有用java开发过DIAMETER协议的没

/* 43 window = 1 -> hanning window 44 */ 45 bool InitFft(FFT_HANDLE *hfft, int count, int window) 46 { 47 int i; 48 49 hfft->count = count; 50 hfft->win = new float[count]; 51 if(hfft->win == NULL) 52 { 53 return false; 54 } 55 hfft->wt = new COMPLEX[count]; 56 if(hfft->wt == NULL) 57 { 58 delete[] hfft->win; 59 return false; 60 } 61 for(i = 0; i < count; i++) 62 { 63 hfft->win[i] = float(0.50 - 0.50 * cos(2 * M_PI * i / (count - 1))); 64 } 65 for(i = 0; i < count; i++) 66 { 67 float angle = -i * M_PI * 2 / count; 68 hfft->wt[i].re = cos(angle); 69 hfft->wt[i].im = sin(angle); 70 } 71 72 return true; 73 } 74 75 void FFT(FFT_HANDLE *hfft, COMPLEX *TD2FD) 76 { 77 int i,j,k,butterfly,p; 78 79 int power = NumberOfBits(hfft->count); 80 81 /*蝶形运算*/ 82 for(k = 0; k < power; k++) 83 { 84 for(j = 0; j < 1<<k; j++) 85 { 86 butterfly = 1<<(power-k); 87 for(i = 0; i < butterfly/2; i++) 88 { 89 p=j * butterfly; 90 COMPLEX t = TD2FD[i + p] + TD2FD[i + p + butterfly/2]; 91 TD2FD[i + p + butterfly/2] = (TD2FD[i + p] - TD2FD[i + p +butterfly/2]) * hfft->wt[i*(1<<k)]; 92 TD2FD[i + p] = t; 93 } 94 } 95 } 96 97 /*重新排序*/ 98 for(i = 1,j = hfft->count/2;i <= hfft->count-2; i++) 99 {100 if(i < j)101 {102 COMPLEX t = TD2FD[j];103 TD2FD[j] = TD2FD[i];104 TD2FD[i] = t;105 }106 k = hfft->count/2;107 while(k <= j)108 {109 j = j - k;110 k = k / 2;111 }112 j = j + k;113 }114 }

java有没有Diameter协议的标准实现

我也刚刚了解不久,大概是这个意思吧。SIP协议主要解决了IP应用于电信级领域的问题。(IP是自由开放的,但是电信级领域是封闭的,可管的)而DIAMETER协议主要用于:认证(Authentication)、授权(Authorization)、计帐(Accounting)(DIAMETER本身就是个AAA协议)。具体貌似有个DIAMETER SIP协议,用于IMS的注册,会话,注销和升级

java dom4j解析怎么获取节点并且带标签

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();DocumentBuilder db = dbf.newDocumentBuilder();Document doc = db.parse(request.getInputStream());NodeList pl = doc.getElementsByTagName("FromUserName");NodeList pl1 = doc.getElementsByTagName("EventKey");if(pl != null && pl.getLength() > 0){String openId= pl.item(0).getTextContent();logger.info("OPENID:"+openId);if(pl1!= null &&pl1.getLength()>0){String evenKey = pl1.item(0).getTextContent();logger.info("EVENKEY:"+evenKey);}}request.getInputStream() 是传入的流这里的FromUserName 和EventKey 都是节点

怎么用JavaScript实现窗小化

javascript code:function showWin(){var win = document.getElementById("_mask_div");var mask = document.getElementById("_mask");if(win != null && win.style.display == "none"){mask.style.display = "block";win.style.display = "block";}else{//浏览器var ua = navigator.userAgent.toLowerCase();var isIE = ua.indexOf("ie")>=0;//新激活图层var _newDiv = document.createElement("div");_newDiv.id="_mask_div";_newDiv.style.width="500px";_newDiv.style.height="200px";_newDiv.style.left="50%";_newDiv.style.top="50%";_newDiv.style.zIndex=1001;_newDiv.style.background = "#EEEEEE";_newDiv.style.border="solid 10px #898989";_newDiv.style.padding = "5px";_newDiv.style.position="absolute";_newDiv.style.marginLeft="-250px";_newDiv.style.marginTop="-100px";_newDiv.innerHTML = "hello,world ";//关闭控件var _newField = document.createElement("a");_newField.setAttribute("href","javascript:void(0);");_newField.appendChild(document.createTextNode("close"));_newDiv.appendChild(_newField);//事件绑定if(isIE){_newField.setCapture();_newField.attachEvent("onclick",closeWin);}else{document.captureEvents(Event.CLICK);_newField.addEventListener("click",closeWin);}//mask图层var _newMask = document.createElement("div");_newMask.id="_mask";_newMask.style.width=document.documentElement.clientWidth+"px";_newMask.style.height=document.documentElement.clientHeight+"px";_newMask.style.left="0px";_newMask.style.top="0px";_newMask.style.filter="alpha(opacity=30)";_newMask.style.mozOpacity=0.3;_newMask.style.opacity=0.3;_newMask.style.backgroundColor="#000000";_newMask.style.zIndex=1000;_newMask.style.overflow="hidden";_newMask.style.position="absolute";//添加元素到bodydocument.body.appendChild(_newMask);document.body.appendChild(_newDiv);}}function closeWin(){ var win = document.getElementById("_mask_div"); var mask = document.getElementById("_mask"); win.style.display = "none"; mask.style.display = "none";}html code:<a href="javascript:void(0);" onclick="showWin()">猛击我</a>

Javascript读取某文件夹下的所有文件

javascript fso是有权限和安全性问题,很少人在用,用程序语言解决吧!

请问下JavaScript的问题

type是w3c的标准声明, language 是早期的声明方式, 为了脚本兼容,一般两个都写上

怎么开启JavaScript ?

可以在“开始”--“运行”,调出运行的对话框,也可以使用Win+R热键,然后直接在输入栏输入即可在开始--运行输入cmd,调出‘命令提示符"窗口,然后再执行regsvr32jscript.dll就行了

怎样用360浏览器打开JavaScript

要是被禁用··打开就行了·

常使用!请启用浏览器的javascript功能后再访问。

如果您的浏览器不支持JavaScript功能或该功能被禁止,访问许多网站(包括本站)的时候有些功能就无法使用。我们建议您开启JavaScript功能以达到最佳的浏览效果,以下是可能的原因及开启方法: 可能的原因一:您的浏览器可能不支持JavaScript 如您的浏览器不支持JavaScript,您必须将浏览器的版本进行升级,我们推荐您使用 Firefox 火狐浏览器 或使用 IE6及更高版本。 可能的原因二:JavaScript支持功能被关闭 如果您的浏览器关闭了JavaScript支持功能,您须开启该功能后方可继续。 开启JavaScript支持功能,请按如下操作指导进行 简单方法: IE6.0:“工具”--“Internet选项”--“Internet”和“本地intranet”均设置为“默认级别”即可。 详细设置: IE 5及更高版本 点击工具栏,然后选中Internet 选项。 选中安全一栏。 点击自定义级别按钮。 选择到Scripting选项。 分别在活动脚本、允许通过脚本进行粘贴操作以及Java小程序脚本的选项中,选中启用选项。 点击确定按钮。 IE4.x版本: 点击查看一栏。 点击Internet选项。 选中安全一栏。 点击设置按钮。 选择到Scripting选项。 选中Java 小程序脚本 以及活动脚本。 点击确定按钮。 Firefox火狐浏览器: 点击选项。 选中内容一栏。 在“启用Scripting”选项前打勾。 点击确定按钮。 Netscape 6.x版本: 点击编辑选项,然后选中首选项。 选中高级选项。 选择启用JavaScript支持功能选项。 点击确定按钮。 Netscape 4.x版本: 点击编辑选项,然后选中首选项。 选中高级选项。 选中启用JavaScript。 点击确定按钮。

百度上有“更好的使用百度知道,请开启 Javascript 功能”,请问怎么开启 Javascript 功能啊?

如何开启Javascript功能如果您的浏览器不支持JavaScript功能或该功能被禁止,访问许多网站(包括本站)的时候有些功能就无法使用。我们建议您开启JavaScript功能以达到最佳的浏览效果,以下是可能的原因及开启方法:可能的原因一:您的浏览器可能不支持JavaScript如您的浏览器不支持JavaScript,您必须将浏览器的版本进行升级,我们推荐您使用 Firefox 火狐浏览器 或使用 IE6及更高版本。可能的原因二:JavaScript支持功能被关闭 如果您的浏览器关闭了JavaScript支持功能,您须开启该功能后方可继续。 开启JavaScript支持功能,请按如下操作指导进行简单方法:IE6.0:“工具”--“Internet选项”--“Internet”和“本地intranet”均设置为“默认级别”即可。详细设置:IE 5及更高版本点击工具栏,然后选中Internet 选项。 选中安全一栏。 点击自定义级别按钮。 选择到Scripting选项。 分别在活动脚本、允许通过脚本进行粘贴操作以及Java小程序脚本的选项中,选中启用选项。 点击确定按钮。 IE4.x版本:点击查看一栏。 点击Internet选项。 选中安全一栏。 点击设置按钮。 选择到Scripting选项。 选中Java 小程序脚本 以及活动脚本。 点击确定按钮。Firefox火狐浏览器:点击选项。 选中内容一栏。 在“启用Scripting”选项前打勾。 点击确定按钮。Netscape 6.x版本:点击编辑选项,然后选中首选项。 选中高级选项。 选择启用JavaScript支持功能选项。 点击确定按钮。 Netscape 4.x版本:点击编辑选项,然后选中首选项。 选中高级选项。 选中启用JavaScript。 点击确定按钮。

常使用!请启用浏览器的javascript功能后再访问。

如果您的浏览器不支持JavaScript功能或该功能被禁止,访问许多网站(包括本站)的时候有些功能就无法使用。我们建议您开启JavaScript功能以达到最佳的浏览效果,以下是可能的原因及开启方法: 可能的原因一:您的浏览器可能不支持JavaScript 如您的浏览器不支持JavaScript,您必须将浏览器的版本进行升级,我们推荐您使用 Firefox 火狐浏览器 或使用 IE6及更高版本。 可能的原因二:JavaScript支持功能被关闭 如果您的浏览器关闭了JavaScript支持功能,您须开启该功能后方可继续。 开启JavaScript支持功能,请按如下操作指导进行 简单方法: IE6.0:“工具”--“Internet选项”--“Internet”和“本地intranet”均设置为“默认级别”即可。 详细设置: IE 5及更高版本 点击工具栏,然后选中Internet 选项。 选中安全一栏。 点击自定义级别按钮。 选择到Scripting选项。 分别在活动脚本、允许通过脚本进行粘贴操作以及Java小程序脚本的选项中,选中启用选项。 点击确定按钮。 IE4.x版本: 点击查看一栏。 点击Internet选项。 选中安全一栏。 点击设置按钮。 选择到Scripting选项。 选中Java 小程序脚本 以及活动脚本。 点击确定按钮。 Firefox火狐浏览器: 点击选项。 选中内容一栏。 在“启用Scripting”选项前打勾。 点击确定按钮。 Netscape 6.x版本: 点击编辑选项,然后选中首选项。 选中高级选项。 选择启用JavaScript支持功能选项。 点击确定按钮。 Netscape 4.x版本: 点击编辑选项,然后选中首选项。 选中高级选项。 选中启用JavaScript。 点击确定按钮。

如何在IE浏览器中启用Javascript

工具 - Internet选项 - 高级选项卡展览 - 去勾“禁用脚本调试”去掉两个勾如图

怎样启动javascript?

如何开启Javascript功能?  如果您的浏览器不支持JavaScript功能或该功能被禁止,访问许多网站(包括本站)的时候有些功能就无法使用。我们建议您开启JavaScript功能以达到最佳的浏览效果,以下是可能的原因及开启方法:可能的原因一:您的浏览器可能不支持JavaScript  如您的浏览器不支持JavaScript,您必须将浏览器的版本进行升级,我们推荐您使用 Firefox 火狐浏览器 或使用 IE6及更高版本。可能的原因二:JavaScript支持功能被关闭  如果您的浏览器关闭了JavaScript支持功能,您须开启该功能后方可继续。 开启JavaScript支持功能,请按如下操作指导进行(IE 5及更高版本)  点击工具栏,然后选中Internet 选项。  选中安全一栏。  点击自定义级别按钮。  选择到Scripting选项。  分别在活动脚本、允许通过脚本进行粘贴操作以及Java小程序脚本的选项中,选中启用选项。  点击确定按钮。 IE4.x版本:  点击查看一栏。  点击Internet选项。  选中安全一栏。  点击设置按钮。  选择到Scripting选项。  选中Java 小程序脚本 以及活动脚本。  点击确定按钮。 Firefox火狐浏览器:  点击选项。  选中内容一栏。  在“启用Scripting”选项前打勾。  点击确定按钮。  Netscape 6.x版本:  点击编辑选项,然后选中首选项。  选中高级选项。  选择启用JavaScript支持功能选项。  点击确定按钮。  Netscape 4.x版本:  点击编辑选项,然后选中首选项。  选中高级选项。  选中启用JavaScript。另一种方法:如果是使用ie则执行  1.打开一个IE窗口  2.点击"工具"菜单  3.选择"internet选项..."  4.选择"安全"选项卡  5.页面中电击自定义级别  6.在"自定义级别..."  7.滚动滚动条,在设置列表中找到"脚本",将其下的"javascript脚本","活动脚本",和"允许脚本粘贴"三项都设置为允许  8."确定"保存

关于浏览器javascript设置问题

方法一:选用其他浏览器打开方法二:暂无

如何开启Javascript功能

如何开启Javascript功能?  如果您的浏览器不支持JavaScript功能或该功能被禁止,访问许多网站(包括本站)的时候有些功能就无法使用。我们建议您开启JavaScript功能以达到最佳的浏览效果,以下是可能的原因及开启方法:可能的原因一:您的浏览器可能不支持JavaScript  如您的浏览器不支持JavaScript,您必须将浏览器的版本进行升级,我们推荐您使用 Firefox 火狐浏览器 或使用 IE6及更高版本。可能的原因二:JavaScript支持功能被关闭  如果您的浏览器关闭了JavaScript支持功能,您须开启该功能后方可继续。 开启JavaScript支持功能,请按如下操作指导进行(IE 5及更高版本)  点击工具栏,然后选中Internet 选项。  选中安全一栏。  点击自定义级别按钮。  选择到Scripting选项。  分别在活动脚本、允许通过脚本进行粘贴操作以及Java小程序脚本的选项中,选中启用选项。  点击确定按钮。 IE4.x版本:  点击查看一栏。  点击Internet选项。  选中安全一栏。  点击设置按钮。  选择到Scripting选项。  选中Java 小程序脚本 以及活动脚本。  点击确定按钮。 Firefox火狐浏览器:  点击选项。  选中内容一栏。  在“启用Scripting”选项前打勾。  点击确定按钮。  Netscape 6.x版本:  点击编辑选项,然后选中首选项。  选中高级选项。  选择启用JavaScript支持功能选项。  点击确定按钮。  Netscape 4.x版本:  点击编辑选项,然后选中首选项。  选中高级选项。  选中启用JavaScript。另一种方法:如果是使用ie则执行  1.打开一个IE窗口  2.点击"工具"菜单  3.选择"internet选项..."  4.选择"安全"选项卡  5.页面中电击自定义级别  6.在"自定义级别..."  7.滚动滚动条,在设置列表中找到"脚本",将其下的"javascript脚本","活动脚本",和"允许脚本粘贴"三项都设置为允许  8."确定"保存

JavaScript中Scripting.FileSystemObject获取的文件对象的相关日期属性类型是什么

var date = new Date(file.DateCreated);其中file是文件的引用。

怎么打开JavaScript

如果想要查看JavaScript的源代码,则使用任一文本编辑器如记事本,就可以打开查看如果想要运行,则可以通过html引用,使用浏览器打开网页如果是node,则可以用node运行指定的js文件

javascript中new ActiveXObject("Scripting.FileSystemObject")问题

Scripting.FileSystemObject是不安全的COM组件,不应当在客户端页面脚本中使用。

请问,火狐中如何调用javascript中的scripting.fileSystemObject对象?

fileSystemObject是activex,只有IE支持

如何在IE浏览器中启用Javascript

工具 - Internet选项 - 高级选项卡展览 - 去勾“禁用脚本调试”去掉两个勾如图

firefox怎么启用javascript

您好!火狐默认开启javascript,并且普通用户是无法直接关闭的。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。了解更多火狐浏览器的使用小技巧,请到火狐社区:http://mozilla.com.cn/moz-portal.html感谢您对火狐浏览器的支持!

如何开启javascript支持

我们建议您开启JavaScript功能以达到最佳的浏览效果,以下是可能的原因及开启方法: 可能的原因一:您的浏览器可能不支持JavaScript如您的浏览器不支持JavaScript,您必须将浏览器的版本进行升级,我们推荐您使用 Firefox 火狐浏览器 或使用 IE6及更高版本。 可能的原因二:JavaScript支持功能被关闭如果您的浏览器关闭了JavaScript支持功能,您须开启该功能后方可继续。开启JavaScript支持功能,请按如下操作指导进行IE 5及更高版本 点击工具栏,然后选中Internet 选项。 选中安全一栏。 点击自定义级别按钮。 选择到Scripting选项。 分别在活动脚本、允许通过脚本进行粘贴操作以及Java小程序脚本的选项中,选中启用选项。 点击确定按钮。 IE4.x版本: 点击查看一栏。 点击Internet选项。 选中安全一栏。 点击设置按钮。 选择到Scripting选项。 选中Java 小程序脚本 以及活动脚本。 点击确定按钮。 Firefox火狐浏览器: 点击选项。 选中内容一栏。 在“启用Scripting”选项前打勾。 点击确定按钮。 Netscape 6.x版本: 点击编辑选项,然后选中首选项。 选中高级选项。 选择启用JavaScript支持功能选项。 点击确定按钮。 Netscape 4.x版本: 点击编辑选项,然后选中首选项。 选中高级选项。 选中启用JavaScript。 点击确定按钮。

怎么开启浏览器中的JavaScript功能

浏览器本来就是支持js的,默认为开启状态。

java 中add sub mul div是什么意思

童鞋~~,这是这段代码里面的add,mul,sub,div是coder定义的方法名啊,并不是什么关键字,只是这段代码编码实在不敢恭维。add(fushu),mul(fushu),sub(fushu),div(fushu)这四个方法的作用是一样的,就是返回传进去的fushu类型参数。说实话,这段代码没有什么实际意义

java操作Office办公软件

说一下具体方式,首先java操作office需要有第三方的jar来支持比如poi-3.2.jar、jacob.jar、jxl.jar、poi-contrib-3.2-FINAL-20081019.jar、poi-scratchpad-3.2-FINAL-20081019.jar之类的jar,有了这些第三方包的支持,然后根据自己的需求来对照包里面具体的工具类来实现,自动播放和自动下来观看建议自己写个timer来实现java.util.Timer 和 java.util.TimerTask。

java poi读取Excel2007 的问题

你不是就是读取一个excel么?把你下载的是jar包的都引进去就行了。。。如果你要测试少了哪个的话就一个个试吧。。。

用java怎么从excel表中读数据

使用poi能解决你的问题或者是import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import static java.lang.System.out;public class FileTest { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { String string = ""; File file = new File("c:" + File.separator + "xxx.xls"); FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String str; while((str = br.readLine()) != null) { string += str; } out.println(string); }}

java下载excel 不预览

后端可以用easyExcel;传到前端前端将返回值格式设置为blob然后a标签下载都行

java 检测class文件走哪个jar包的代码

ClassLoader classloader =org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();URL res = classloader.getResource("org/apache/poi/poifs/filesystem/POIFSFileSystem.class");String path = res.getPath();System.out.println("POI Core came from " + path);classloader = org.apache.poi.POIXMLDocument.class.getClassLoader();res = classloader.getResource("org/apache/poi/POIXMLDocument.class");path = res.getPath();System.out.println("POI OOXML came from " + path);classloader = org.apache.poi.hslf.HSLFSlideShow.class.getClassLoader();res = classloader.getResource("org/apache/poi/hslf/HSLFSlideShow.class");path = res.getPath();System.out.println("POI Scratchpad came from " + path);检测后,发现确实有一个class走了老包,只删java build path没生效。后来把workspace里面的包删了再把project clean一下,然后重新部署,OK,问题解决了!

java poi XWPFTable操作word表格的问题?

1.下载下载3.8beta4版本,请记得一定要下载该版本,其他版本读取word模板并改写内容生成新的文件后,打开新文件时会提示“word无法读取文档,文档可能损坏。”2.集成到项目这一步很简单,只要把下载后解压得到的poi-3.8-beta4-20110826.jar和poi-scratchpad-3.8-beta4-20110826.jar两个文件复制到java web项目的lib目录下就行了3.制作word模板把需要变动的值全部用代码来代替,例如你需要改变名称的值,则可以在模板中用name来表示。详细见附件中的doc文件。4.调用接口方法实现对word的读写操作整个过程就是先读取模板,然后修改内容,再重新生成新的文档保存到本地或者输出文件流提供下载,下面分别是生成新文档和输出文件流两种方式的代码片断,详细的代码请见下列代码中的readwriteWord()两个重载方法。

Java 利用poi 可以直接读取word中的表格保持样式生成新的word么?

1.读取word 2003及word 2007需要的jar包  读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-20090622.jar 和 poi-scratchpad-3.5-beta6-20090622.jar 两个 jar 包即可, 而 2007 版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的 jar 包比较的多,有如下 7 个之多: 1. openxml4j-bin-beta.jar 2. poi-3.5-beta6-20090622.jar 3. poi-ooxml-3.5-beta6-20090622.jar 4 .dom4j-1.6.1.jar 5. geronimo-stax-api_1.0_spec-1.0.jar 6. ooxml-schemas-1.0.jar 7. xmlbeans-2.3.0.jar其中 4-7 是 poi-ooxml-3.5-beta6-20090622.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-20090622.tar.gz 中的 ooxml-lib 目录下可以找到)。2.换行符号  硬换行:文件中换行,如果是键盘中使用了"enter"的换行。  软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。  对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。3.读取的注意事项  值得注意的是: POI 在读取不会读取 word 文件中的图片信息; 还有就是对于 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。4.读取word文本内容代码1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.io.InputStream; 4 5 import org.apache.poi.POIXMLDocument; 6 import org.apache.poi.POIXMLTextExtractor; 7 import org.apache.poi.hwpf.extractor.WordExtractor; 8 import org.apache.poi.openxml4j.opc.OPCPackage; 9 import org.apache.poi.xwpf.extractor.XWPFWordExtractor;10 11 public class Test {12 public static void main(String[] args) {13 try {14 InputStream is = new FileInputStream(new File("2003.doc"));15 WordExtractor ex = new WordExtractor(is);16 String text2003 = ex.getText();17 System.out.println(text2003);18 19 OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx");20 POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);21 String text2007 = extractor.getText();22 System.out.println(text2007);23 24 } catch (Exception e) {25 e.printStackTrace();26 }27 }28 }

javafx中怎么导出excel

如果就是应用程序 控制台或者java swing都可以javaFX也可以如果要做web版你会的这些足够了显示层用什么技术都无所谓office文件的读写有对应的jar包 比如poi-3.2.jar、jacob.jar、jxl.jar、poi-contrib-3.2-FINAL-20081019.jar、poi-scratchpad-3.2-FINAL-20081019.jar 你可以百度一下 应该不难找 一般都是用流的形式读写成相应格式的编码

Java 利用poi 可以直接读取word中的表格保持样式生成新的word么?

1.读取word2003及word2007需要的jar包  读取2003版本(.doc)的word文件相对来说比较简单,只需要poi-3.5-beta6-20090622.jar和poi-scratchpad-3.5-beta6-20090622.jar两个jar包即可,而2007版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的jar包比较的多,有如下7个之多:1.openxml4j-bin-beta.jar2.poi-3.5-beta6-20090622.jar3.poi-ooxml-3.5-beta6-20090622.jar4.dom4j-1.6.1.jar5.geronimo-stax-api_1.0_spec-1.0.jar6.ooxml-schemas-1.0.jar7.xmlbeans-2.3.0.jar其中4-7是poi-ooxml-3.5-beta6-20090622.jar所依赖的jar包(在poi-bin-3.5-beta6-20090622.tar.gz中的ooxml-lib目录下可以找到)。2.换行符号  硬换行:文件中换行,如果是键盘中使用了"enter"的换行。  软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。  对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。3.读取的注意事项  值得注意的是:POI在读取不会读取word文件中的图片信息;还有就是对于2007版的word(.docx),如果word文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。4.读取word文本内容代码1importjava.io.File;2importjava.io.FileInputStream;3importjava.io.InputStream;45importorg.apache.poi.POIXMLDocument;6importorg.apache.poi.POIXMLTextExtractor;7importorg.apache.poi.hwpf.extractor.WordExtractor;8importorg.apache.poi.openxml4j.opc.OPCPackage;9importorg.apache.poi.xwpf.extractor.XWPFWordExtractor;1011publicclassTest{12publicstaticvoidmain(String[]args){13try{14InputStreamis=newFileInputStream(newFile("2003.doc"));15WordExtractorex=newWordExtractor(is);16Stringtext2003=ex.getText();17System.out.println(text2003);1819OPCPackageopcPackage=POIXMLDocument.openPackage("2007.docx");20POIXMLTextExtractorextractor=newXWPFWordExtractor(opcPackage);21Stringtext2007=extractor.getText();22System.out.println(text2007);2324}catch(Exceptione){25e.printStackTrace();26}27}28}
 首页 上一页  46 47 48 49 50 51 52 53 54 55 56  下一页  尾页