javastring扩展

算法 Java如何实现把不定长的字符串扩展为128位二进制数?

如果这个二进制数比较大的话, 大到只能用数组储存这个二进制数,

当然如果大到转化成10进制int存不下的情况那另当别论

#includestdio.h

#includestring.h

int main()

{

char a[33];

int i, num = 0;

scanf(“%s”, a);

for(i=strlen(a)-1; i=0; i–)

{

num*=2;

num+=a[i]-‘0’;

}

printf(“%d\n”, num);

return 0;

}

不好意思,没看清楚题目,大数的我也没编出来。

我在网上找到了一个C++的,希望对你有帮助。

//==========================================

//将64个3000位的二进制转化成十进制,性能:120秒内

//——————————————

#includeiostream

#includefstream

#includesstream

#includealgorithm

#includetime.h

using namespace std;

//——————————————

int main(){

clock_t start=clock(); //统计时间

ifstream in(“abc.txt”);

for(string s;getline(in,s);){ //读取二进制数

int b[904]={0},t=0; //三千位的二进制数都为1时最大,转换后约为1.2e+903,所以取数组904足够

int a[904]={0}; //数组的每一位放置十进制的一位数,从a[0]到a[903]依次为个位、十位、百位…

a[0]=1; //数组初值全为零,第一位为2的0次方,等于1,所以a[0]附值为1

reverse(s.begin(),s.end()); //倒置字符串s

for(int k=0;ks.size();k++){ //开始从k=0位读取字符s[k]

if(s[k]==’1′){ //等于’0’时,2的k次方为0

for(int i=t;ik;i++){ //求2的k次方,每次循环乘2,共乘k-t次 t为保留的上次a[i]累计

for(int j=0;j904;j++) //每一位都乘2

a[j]=2*a[j];

t=k;

for(j=0;j904;j++) //检查从a[0]到a[903]每位是不是都是个位数

if(a[j]=10){ //超过10就要进位

a[j]=a[j]-10; //j位大于10进1

a[j+1]=a[j+1]+1; //下位即j+1位要加1

}

}

for(int j=0;j904;j++){ //b数组为求和数组,初值为0

b[j]=b[j]+a[j]; //将此次k位上的2的k次方数的大小与b求和

if(b[j]=10){ b[j]=b[j]-10; b[j+1]=b[j+1]+1;}//大于10进1,下一位加1

}

}

}

int w;

for(int i=903;i=0;i–) //w为统计此3000位二进制数转化为十进制后的位数

if(b[i]!=0){ w=i;break;} //从最高位开始,遇到非0数结束

for(i=w;i=0;i–) //输出结果,注意是从高位开始输出

coutb[i];

coutendl;

cout”十进制位数为:”w+1endlendl; //输出转化后的十进制数位数

}

cout”耗用时间为:”(clock()-start)/CLK_TCKendl; //输出耗用时间,64个3000位的测试时间为12秒

}//=======================================

还有一个这个。

#include stdio.h

#include string.h

#define MAX_LEN 10000

typedef struct{

int len;

char value[MAX_LEN];

} TBigInt, *pBigInt;

void AddBit(pBigInt s,char BitValue){ //加一位, 0或者1。

int i;

for (i=0;is-len;i++)

s-value[i]*=2;

s-value[0]+=BitValue;

for (i=0;is-len;i++){

s-value[i+1]+=s-value[i]/10;

s-value[i]%=10;

}

if (s-value[s-len]) s-len++;

}

void OutputBigInt(pBigInt s){ //输出大整数类型

int i;

if (s-len==0){

puts(“0”);

} else {

for (i=s-len-1;i=0;i–)

putchar(s-value[i]+’0′);

putchar(‘\n’);

}

}

int main(){

static char buf[1000000];

static TBigInt BigInt;

while (scanf(“%s”,buf)!=EOF){

memset(BigInt,0,sizeof BigInt);

int i;

for (i=0;buf[i];i++)

AddBit(BigInt,buf[i]==’1′?1:0);

OutputBigInt(BigInt);

}

return 0;

}

javastring扩展

java中set类型的东西是什么?如何将一个string类型的字符串增加到里面?

Set是集合的意思,是同种对象的集合,String说明这种对象都是String类型的对象。

可以这样:

SetString set = new HashSetString();

String s1 = “hello”;

String s2 = “world”;

set.add(s1);

set.add(s2);

这样就添加了两个元素。

扩展资料:

Java中String类学习总结

一、String是不可变对象

java.lang.String类使用了final修饰,不能被继承。Java程序中的所有字面值,即双引号括起的字符串,如”abc”,都是作为String类的实例实现的。String是常量,其对象一旦构造就不能再被改变。

例:

public class Immutable {

public static String upcase(String s) {

return s.toUpperCase();

}

public static void main(String[ ] args) {

String str1= “Hello World”;

System.out.println(str1);  //Hello World

String str2 = upcase(str1);

System.out.println(str2);  //HELLO WORLD

System.out.println(str1);  //Hello World

}

}

二、String常量池

常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。Java为了提高性能,静态字符串在常量池中创建,并尽量使用同一个对象,重用静态字符串。对于重复出现的字符串直接量,JVM会首先在常量池中查找,如果常量池中存在即返回该对象。

例:

public class test1 {

public static void main(String[] args){

String str1 = “Hello”;

//不会创建新的String对象,而是使用常量池中已有的”Hello”,

String str2 = “Hello”;

System.out.println(str1 == str2); //true

//使用new关键字会创建新的String对象

String str3 = new String(“Hello”);

System.out.println(str1 == str3); //false

}

}

Java扩展函数

应该是方法

public static String NumToUpter(String number)

public 公开的

static 静态的

Srting 返回值类型

NumToUpter 方法名

(String number) 方法参数

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月27日 11:54:22
下一篇 2024年3月27日 12:02:56

相关推荐

  • javastring值传递,java传递字符串

    Java的参数传递是值传递还是引用传递 1、您好:Java中参数的传递方式有两种:传值和传引用。按值传递(call by value)表示方法接受的是调用者提供的值;按引用调用(call by reference)表示方法接受的是调用者提供的变量地址。 2、Java只有一种参数传递方式:值传递!真正的引用传递(pass by reference)是指当引元传…

    2024年5月22日
    4000
  • javastringzhuanlong,javastring转long的方法

    Java进阶:Java变量类型之间的相互转换 1、Java 语言的数据类型有两大类:一类是简单类型,也称主要类型(Primitive),另一类是引用类型(Reference)。简单类型变量中存储的是具体的值,而引用类型的变量中存储的是对象的引用。 Java 决定了每种简单类型的大小。 2、自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类…

    2024年5月22日
    4000
  • javastring分离数字,java string分割成数组

    java中怎样将把字母和数字组成的字符串才分开?? 1、java自带函数 for (int i = str.length();–i=0;){ if (!Character.isDigit(str.charAt(i))){ 这里将非数字提取 }else{ 这里将数字提取 } } 2用正则表达式,不过这个是判断整个字符串的。 2、大致思路如下:str…

    2024年5月22日
    3500
  • javastring含有某个字符,java string包含某个字符串

    java中怎么判断一个字符串数组中包含某个字符或字符串 可以用contains()这个方法,判断一个字符串是否包含另一个字符串。可以用repalce()这个方法,把想删除的字符替换成空。 Arrays.toString方法将数组转成字符串后使用indexOf方法可以判断,不过字符串中如果有逗号的话可能判断不准。 把数组各项放到list中,用list的cont…

    2024年5月19日
    4100
  • javastring字符个数,javastring判断包含字符

    java编程:输入一个字符串,计算字符串中所包含的字母个数,数字个数,汉… (c=getchar())!=\nc=0所有出现以上这种和变量“c”进行比较的语句,把双引号都换成单引号,双引号在C语言下会解释成字符串,单引号才是字符。java版的代码不想给,C语言的都有了,自己练练自己改吧。 数字字符1的ASCII码值是49,而根据你的判断‘1’就不…

    2024年5月18日
    4600
  • javastring去掉字符,java去掉string中的某些字符

    java字符串中去掉所有空白字符如何实现? } 上述代码中,首先定义了start和end变量分别指向字符串的起始和末尾位置,然后使用while循环去除字符串开头和结尾的空白字符,最后返回去除空白字符后的子字符串。 其实,在Java中从字符串中删除空格有很多不同的方法,如trim,replaceAll等。但是,在Java 11添加了一些新的功能,如strip、…

    2024年5月16日
    3800
  • javastring写入文件,java中写入文件怎么实现

    java中如何把String数组写到文件里 1、String str = new String(data);或直接利用Array工具的方法。 2、把数据按照你需要的格式拼接成字符串,然后写入文件,下面的方法是写入的同时同时创建文件:filepath:文件路径,file:写入的内容,encode:编码格式。 3、首先你需要读取txt,得到每一行的数据内容,用字…

    2024年5月16日
    6500
  • javastring字符串相加减,java字符串加减运算

    Java问题 1、java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。java.lang.ArithmeticException 算术条件异常。譬如:整数除零等。 2、问题四:担心找不到工作 学习Java主要是为了找一份适合自己的工作,很多人最担心的就是找工作的环…

    2024年5月15日
    3900
  • javastring回车换行,java中回车键

    java中的回车和换行的含义及其区别? \r是回车,\n是换行,前者使光标到行首,后者使光标下移一格。通常用的Enter是两个加起来。下面转一篇文章。 以下几个方面存在区别,如下:概念方面:回车CR-将光标移动到当前行的开头。换行LF-将光标“垂直”移动到下一行。 只有一个区别,在于换行符【\n】,即【%d】输出后不换行,而【%d\n】会换行。概念解析:%d…

    2024年5月14日
    3300
  • javastring循环赋值,java循环输入字符串

    javastring怎么赋值 执行赋值语句a=123+456后,变量a的值是123456。字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n=0)。它是编程语言中表示文本的数据类型。 使用StringBuffer或StringBuilder类。这两个类都提供了修改字符串内容的方法,例如append()、i…

    2024年5月13日
    4000

发表回复

登录后才能评论



关注微信