BigInteger的其他实现
public static String add(String s1 , String s2){//此处该如何实现
return "";
}
public static void main(String[] args){
String s1 = "123456789";
String s2 = "987654321";
String result = add(s1,s2);
System.out.print(result);
}
要求:
1.以上程序中,要求将两个字符串整数相加后,返回一个String的结果,如何实现
2.程序中,不能使用BigInteger数据结构,要求自己设计实现
求大神指点??? --------------------编程问答-------------------- public static String add(String s1 , String s2){
String s3=s1+s2;
return s3;
}
public static void main(String[] args){
String s1 = "123456789";
String s2 = "987654321";
String result = add(s1,s2);
System.out.print(result);
} --------------------编程问答-------------------- 楼主的意思是要数值相加吧,不是字符串相加吧。
那你变成长整型不就行了吗? --------------------编程问答--------------------
客户端--------------------编程问答--------------------
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
class liaot extends Frame
{
Socket socket=null;
private TextArea text1;
private TextField text2;
//图形界面
liaot(){
text1 = new TextArea();
text2 = new TextField();
add(text1,"Center");
add(text2,"South");
try{
socket = new Socket("192.168.30.129",3334);
}catch(Exception ee){}
event();
setBounds(300,300,300,300);
setVisible(true);
}
//事件响应
public void event(){
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
text2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
// new Thread(new clientsend()).start();
new Thread(new clientrec()).start();
send();
//rece();
text2.setText("");
}
});
}
public static void main(String[] args)throws Exception
{
new liaot();
}
//发送
public void send(){
byte[]buf = text2.getText().trim().getBytes();
String str = new String(buf,0,buf.length);
System.out.println(str);
// text1.setText(str+text2.getText()+"\r\n");
try{
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF(str);
dos.flush();
// out.write("\r\n".getBytes());
;
}catch(Exception e){}
}
class clientsend implements Runnable
{
public void run(){
send();
}
}
//接收
public void rece(){
try{
DataInputStream dis = new DataInputStream(socket.getInputStream());
String str = dis.readUTF();
text1.append(str+"\r\n");
}catch(Exception e){}
}
class clientrec implements Runnable
{
public void run(){
// byte[] buf = new byte[1024];
rece();
}
}
}
服务端
import java.io.*;
import java.net.*;
import java.util.*;
class liaotserver
{
static List<server> list = new ArrayList<server>();
public static void main(String[] args)throws Exception
{
Socket socket;
ServerSocket ss = new ServerSocket(3334);
while(true){
socket = ss.accept();
System.out.println("hahahah....");
server ser = new server(socket);
list.add(ser);
new Thread(ser).start();
}
}
static class server implements Runnable
{
private DataOutputStream dos;
private DataInputStream dis;
private Socket socket = null;
server(Socket socket){
this.socket = socket;
try{
dos = new DataOutputStream(socket.getOutputStream());
dis = new DataInputStream(socket.getInputStream());
}catch(Exception e){}
}
public void send(String str){
try{
//System.out.println(str);
dos.writeUTF(str);
dos.flush();
}catch(Exception e){}
}
public void run(){
// byte[] buf = new byte[1024];
try{
while(true){
String str = dis.readUTF();
//System.out.println(str);
for(int i=0;i<list.size();i++){
server s = list.get(i);
s.send(str);
}
}
}catch(Exception e){}
}
}
}
我运行一个客户端时,运行正常,显示结果正常,运行两个客户端时,我在第一个客户端写“你好”,第一个客户端能显示“你好”,但是第二个客户端不能显示,但是我要是在第二个客户端写上“哈哈”,”哈哈“不能显示,而是第一个客户端的”你好“显示出来了,每次输入都是这样,什么原因啊,怎么改?
--------------------编程问答--------------------
public static String add(String s1 , String s2){
return new BigInteger(s1).add(new BigInteger(s2)).toString() ;
}
public class testmap{
public static String add(String s1 , String s2){
Long l=new Long(s1);
Long l2=new Long(s2);
l.longValue();
l2.longValue();
Long l3=l+l2;
return l3.toString();
}
public static void main(String[] args){
String s1 = "123456789";
String s2 = "987654321";
String result = add(s1,s2);
System.out.print(result);
}
} --------------------编程问答-------------------- Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java 中的所有类继承。有关字符串串联和转换的更多信息,请参阅 Gosling、Joy 和 Steele 合著的 The Java Language Specification。
public class Test7
{
public static String add(String s1 , String s2){
//此处该如何实现
String s=s1+s2;
return s;
}
public static void main(String[] args){
String s1 = "123456789";
String s2 = "987654321";
String result = add(s1,s2);
System.out.print(result);
}
} --------------------编程问答-------------------- http://blog.csdn.net/mingzidaodiduochang/article/details/8093660
昨天自己写的链接。大整数加减法。就是我是用javascript写的。。但基本逻辑应该是一样的
你重点看那个bigIntegerAdd函数就好了。
补充:Java , Java SE