「java求反序」java反序列

博主:adminadmin 2022-11-30 06:42:07 69

今天给各位分享java求反序的知识,其中也会对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反序列的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-30,除非注明,否则均为首码项目网原创文章,转载请注明出处。