java之01字符串

今天表弟突然问我一道C的字符串的题目:

问题描述
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:
00000
00001
00010
00011
00100
请按从小到大的顺序输出这32种01串。 输入格式 本试题没有输入。
输出格式
输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出
00000
00001
00010
00011

由于没有C环境,于是用java实现如下:

        int first, second, third, fourth, fifth;
        for (first = 0; first <= 1; first ++) {
            for (second = 0; second <= 1; second++) {
                for (third = 0; third <= 1; third++) {
                    for (fourth = 0; fourth <= 1; fourth++) {
                        for (fifth = 0; fifth <=1; fifth++) {
                            System.out.println(first + "" + second + "" + third + "" + fourth + "" + fifth);
                        }
                    }
                }
            }
        }

后来想想如果01字符串的长度发生变化,这循环该怎么写,后来转而实现如下:

        int n = 4;
        int maxNum = 0;
        String maxStr = "";
        for (int k = 0; k < n; k++) {
            maxStr += "1";
        }
        maxNum = Integer.valueOf(maxStr, 2); //二进制转十进制
        for (int i = 0; i <= maxNum; i++) {
            BigInteger s = new BigInteger(i + ""); //转换为BigInteger类型
            String b = s.toString(2); //转换为2进制
            String before = "";
            if (b.length() < n) {
                for (int j = 0; j < (n - b.length()); j++) {
                    before += "0";
                }
            }
            System.out.println(before + b);
        }
时间: 2024-08-15 00:51:53

java之01字符串的相关文章

【华为OJ】201301 JAVA 题目0-1级 将数组分为相等的两组

描述:  编写一个函数,传入一个int型数组,返回该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),能满足以上条件,返回true:不满足时返回false. 知识点: 语言基础,字符串,循环,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归    题目来源: 内部整理  练习阶段: 初级  运行时间限制: 10Sec 内存限制: 128MByte 输入: 输入输入的数据个数 输入一个int型数组 输出: 返

Java中的字符串常量池

最近做到一个题目: 问题:String str = new String("abc"),"abc"在内存中是怎么分配的?    答案是:堆,字符串常量区. 题目考查的为Java中的字符串常量池和JVM运行时数据区的相关概念."abc"为字面量对象,其存储在堆内存中.而字符串常量池则存储的是字符串对象的一个引用. Java中的字符串常量池 Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid&qu

[连载]Java程序设计(01)---任务驱动方式:英制单位转换成公制单位

任务:你所在的公司是一家美国的服装设计和制造公司,现在这家公司打算进入欧洲市场,于是需要一个将英制单位(英寸)换算为公制单位(厘米)的程序.已知1英寸=2.54厘米,该程序输入以英寸为单位的长度,显示该长度对应的厘米数.例如:输入英寸:2.5,输出:2.5英寸=6.35厘米. package com.lovo; import java.util.Scanner; public class MyConverter { public static void main(String[] args) {

转载:Java中的字符串常量池详细介绍

引用自:http://blog.csdn.net/langhong8/article/details/50938041 这篇文章主要介绍了Java中的字符串常量池详细介绍,JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池或者字符串字面量池,需要的朋友可以参考下 Java中字符串对象创建有两种形式,一种为字面量形式,如String str = "droid";,另一种就是使用new这种标准的构造对象的方法,如String str = new Stri

NPU 2015年陕西省程序设计竞赛网络预赛(正式赛)F题 和谐的比赛(递推 ||卡特兰数(转化成01字符串))

Description 今天西工大举办了一场比赛总共有m+n人,但是有m人比较懒没带电脑,另外的n个人带了电脑.不幸的是,今天机房的电脑全坏了只能用带的电脑,一台电脑最多两人公用,确保n>=m.但是大家来的时间不同,随机次序来机房,带电脑的人直接准备比赛而没带电脑的人需要向带电脑并还没和别人公用的人求助(当然会答应).但是,如果不存在带电脑并还没和别人公用的人,那他就要等了,等是很让人头疼的,这就不和谐了,当然假如没有这样的情况发生比赛是很和谐的. Input 输入多组数据,每组数据只有一行m(

Java学习笔记--字符串和文件IO

1.Java中的字符串类和字符的表示 2.区分String,StringBuilder和StringBuffer 3.从命令行中给main方法传递参数 4.文件操作 1 Java中的字符串和字符 1.1 String类 字符串就是由一系列的字符组成的序列,在很多语言中,比如C语言,将其存储在一个数组中.现在运用Java的思想,就要将字符串视为一个对象,其中Java规定的String类有11个构造方法,同时还有至少40种实现的方法,通过String类的学习,可以很好地了解面向对象的类和对象的思想.

深度优先搜索 codevs 1065 01字符串

codevs 1065 01字符串 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 输出仅有0和1组成的长度为n的字符串,并且其中不能含有3个连续的相同子串. 输入描述 Input Description 输入文件只有一行一个整数n,表示有0和1组成的字符串的长度.0<=n<=30. 输出描述 Output Description 输出文件只有一行一个整数,表示所有满足条件的字符串的个数. 样例输入 Sample Input

Java整数和字符串转换

字符串转换整数: 虽然有类似的Integer.parseInt(),但是笔试面试明显不会如此: 转字符串可以考虑为: 1.单个字符的转换 2.权值 如:从前往后依次扫描,则每次扫描一个字符  前面数值*10: 如345,扫描3,再3*10+4,再34*10+5............ 从后往前扫描类似处理: class ParsInt{ public static void main(String[] args) { // TODO, add your application code Syst

再回首,Java温故知新(八):Java基础之字符串

字符串是Java中使用频率最高的类,但是它却不属于基本类型,而是预定义了String类来表示.从String类的源码可以看到,String是基于char[]实现的,而且Java中的String是不可变字符串,即String初始化之后不可更改. 估计到这就有人问了,字符串不是都可以改的吗?下面两种不都是更改吗? String a = "123"; a = "1234"; a = a + "F"; 这里需要指出的是,字符串在内存中的存放分为两部分,首