「java求反序」java反序列
今天给各位分享java求反序的知识,其中也会对java反序列进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、JAVA输入一个数字逆序输出?
- 2、用java实现整型反序
- 3、Java反序列求助大神
- 4、java编程怎么完成任意输入一个正整数,反序输出每一位?
- 5、java中怎么将一个字符数组反序
- 6、java怎么把字符串反序排列
JAVA输入一个数字逆序输出?
你的Java程序错在用变量a去计算位数,导致a为0,所以后面的结果都为0,应该把a赋给一个临时变量t,用t去计算位数。
还有你的逆序算法有问题,不但复杂,而且结果不是逆序。
我给你一个Java语言的逆序算法,你看看吧.
import java.util.Scanner;
public class nx{
public static void main(String[] args){
Scanner s=new Scanner(System.in);
int a=s.nextInt();
while(a0){
System.out.print(a%10);
a=a/10;
}
}
}
用java实现整型反序
public class NumberInverse
{
private int amount;
private String stringOutput;
private int inverseInt;
public NumberInverse(int input)
{
if (input 99999 || input -99999)
{
System.out.println("请输入一个小于5位的整数");
return;
}
// 位数
amount = Integer.toString(Math.abs(input)).length();
// 空格显示
for (char c : Integer.toString(Math.abs(input)).toCharArray())
{
if (stringOutput == null)
{
stringOutput = "";
}
stringOutput += String.format("%s%s", String.valueOf(c),
" ");
}
stringOutput = input = 0 ? stringOutput : String.format(
"-%s", stringOutput);
// 逆序
String s = "";
for (int i = this.getAmount() - 1; i = 0; i--)
{
s += String.valueOf((Integer.toString(Math.abs(input))
.toCharArray())[i]);
}
inverseInt = input = 0 ? Integer.parseInt(s) : Integer
.parseInt(String.format("-%s", s));
}
public int getAmount()
{
return amount;
}
public String getStringOutput()
{
return stringOutput;
}
public int getInverseInt()
{
return inverseInt;
}
/**
* 测试
*
* @param args
*/
public static void main(String[] args)
{
NumberInverse n = new NumberInverse(-32345);
System.out.println(n.getAmount());// 打印位数
System.out.println(n.getStringOutput());// 打印格式化字符串
System.out.println(n.getInverseInt());// 打印逆序的数字
}
}
Java反序列求助大神
序列化:将java对象转换为字节序列的过程叫做序列化
反序列化:将字节对象转换为java对象的过程叫做反序列化
通常情况下,序列化有两种用途:、
1) 把对象的字节序列永久的保存在硬盘中
2)在网络上传输对象的字节序列
相应的API
java.io.ObjectOutputStream
writeObject(Object obj)
java.io.ObjectInputStream
readObject()
只有实现了Serializable或者Externalizable接口的类的对象才能够被序列化。否则当调用writeObject方法的时候会出现IOException。
需要注意的是Externalizable接口继承自Serializable接口。两者的区别如下:
仅仅实现Serializable接口的类可应采用默认的序列化方式。比如String类。
假设有一个Customer类的对象需要序列化,如果这个类仅仅实现了这个接口,那么序列化和反序列化的方式如下:ObjectOutputStream采用默认的序列化方式,对于这个类的非static,非transient的实例变量进行序列化。ObjectInputStream采用默认的反序列化方式,对于这个类的非static,非transient的实例变量进行反序列化。
如果这个类不仅实现了Serializable接口,而且定义了readObject(ObjectInputStream in)和 writeObject(ObjectOutputStream out)方法,那么将按照如下的方式进行序列化和反序列化:ObjectOutputStream会调用这个类的writeObject方法进行序列化,ObjectInputStream会调用相应的readObject方法进行反序列化。
实现Externalizable接口的类完全由自身来控制序列化的行为。而且必须实现writeExternal(ObjectOutput out)和readExternal(ObjectInput in)。那么将按照如下的方式进行序列化和反序列化:ObjectOutputStream会调用这个类的writeExternal方法进行序列化,ObjectInputStream会调用相应的readExternal方法进行反序列化。
下面来看一个最简单的例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.java;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class simpleSerializableTest {
public static void main(String[] args) throws Exception {
ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("d:\\objectFile.obj"));
String strObj="name";
Customer customer=new Customer("rollen");
//序列化,此处故意将同一对象序列化2次
out.writeObject(strObj);
out.writeObject(customer);
out.writeObject(customer);
out.close();
//反序列化
ObjectInputStream in=new ObjectInputStream(new FileInputStream("d:\\objectFile.obj"));
String strobj1=(String)in.readObject();
Customer cus1=(Customer)in.readObject();
Customer cus2=(Customer)in.readObject();br in.close();
System.out.println(strobj1+": "+cus1);
System.out.println(strObj==strobj1);
System.out.println(cus1==customer);
System.out.println(cus1==cus2);
}
}
class Customer implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
public Customer() {
System.out.println("无参构造方法");
}
public Customer(String name) {
System.out.println("有参构造方法");
this.name = name;
}
public String toString() {
return "[ "+name+" ]";
}
java编程怎么完成任意输入一个正整数,反序输出每一位?
接收输入的数字,然后转成字符串,将字符串使用函数头尾颠倒,然后使用拆分函数拆分数字并输出
java中怎么将一个字符数组反序
可以用Collection.reverse(list)呀,先把你的数组放到List里,再Collection.reverse(list),然后再从list中拿回来,示例代码:
public
static
void
main(String[]
args)
{
String[]
deal
=
new
String[3];
deal[0]
=
"0";
deal[1]
=
"1";
deal[2]
=
"2";
ListString
list
=
new
ArrayListString();
for
(int
i
=
0;
i
deal.length;
i++)
{
list.add(i,
deal[i]);
}
Collections.reverse(list);
for
(int
i
=
0;
i
list.size();
i++)
{
deal[i]
=
list.get(i);
}
for
(int
i
=
0;
i
deal.length;
i++)
{
System.out.println(deal[i]);
}
}
java怎么把字符串反序排列
StringBuilder类中有一个方法reverse()可以实现,像楼上的思路,是reverse这个方法具体实现。
不过他写的代码是不错。可是还少了一点东西。
String s = "abcdefg";
char [] chs = s.toCharArray();
for(int i=chs.length-1;i0;i--){
System.out.print(chs[i]);
}
下面是调用API操作的。
String s = "abcdefg";
StringBuilder a = new StringBuilder(s);
System.out.println(a.reverse());
关于java求反序和java反序列的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-30,除非注明,否则均为
原创文章,转载请注明出处。