`
Sunflower-13
  • 浏览: 74132 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

学String类后的习题及二、八、十、十六、九进制之间相互转换

阅读更多
学String类后实现的简单习题
1、检查字符串是否是回文字符串
在学习String类后,发现做回文数可以不用数组做,只需要用到String类中的charAt(int index) 方法获取index处的char值,取到字符串首位的字符依次进行比较即可。
代码如下:
import java.util.Scanner;
public class Palindromic {
public static void main(String[] args){
System.out.println("请输入数据: ");
Scanner sc=new Scanner(System.in);
String s=sc.next();
boolean t=true;
for(int i=0,j=s.length()-1;i<=s.length()/2;i++){
//charAt(i))返回i处的 char 值 ,charAt(j))返回j处的 char 值
if(s.charAt(i)!=s.charAt(j)){
t=false;
break;
}
else{
j--;
}
}
if(t){
System.out.println("是回文数");
}else{
System.out.println("不是回文数");
}
}
}

2、删除给定字符串
删除给定的字符串只需要使用String类中的replace(char oldChar, char newChar) 方法实现,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的,删除便可把要删除的数替换成空字符即可,然后返回一个新的字符串。
代码如下:
import java.util.Scanner;
public class  Del {
public static void main(String[] args){
String str1="ab,ac,de,fg,hi,jk,lm,no";
System.out.println(str1);
System.out.println("请输入要删除的字符串: ");
Scanner sc=new Scanner(System.in);
String s=sc.next();
String str2=str1.replace(s, "");
System.out.println(str2);
    }
}

3、倒置字符串
倒置字符串的话需要定义一个空字符串放倒置后的字符串,先使用charAt(int index) 方法获取index处的char值,然后用取到的值累加进定义好的字符串中便轻松实现看字符串倒置。
代码如下:
public class two {
public static void main(String[] args){
String s="abcdefg";
String s1="";
for(int i=0;i<s.length();i++){
char t=s.charAt(i);
s1=t+s1;//用t加s1实现字符串倒置
System.out.println(s1);
}
}
}
4、去除随机生成字符串中的重复字符,并将新的字符串输出。
写了一个静态方法用Random类随机生成字符串,然后在主函数中调用并且使用contains(CharSequence s)方法去除重复字符。还可以直接用Math.random()直接随机产生字符串,再获取字符,只是要注意要进行类型转换,如:int t=(int)(Math.random()*str.length();char c = string.charAt(t);
代码如下:
import java.util.Random;
public class  random {
public static void main(String[] args){
String s1=removerepeatedchar("abcdefg");
System.out.println(s1);
String str1="";
for(int i=0;i<s1.length();i++){
char c = s1.charAt(i);
   //当且仅当str1字符串不包含c 值时,返回 true ,c+""使c变成字符串,然后把c加进str1中,从而达到去除重复的目的。
if(!str1.contains(c+"")){
str1+=c;
}
}
System.out.println(str1);
}
private static String removerepeatedchar(String string) {
Random rd = new Random();
String s="";
for(int i=0;i<10;i++){
int t = rd.nextInt(s1.length());//从s1中随机一个下标
char c = string.charAt(t);//取出下标t处的字符 s+=c;
}
return s;
}
}

5、验证码是目前网络中应用最广泛的一种安全机制,可防止一些不良信息的侵入。随着网络的发展,验证码也由原本简单的数字变成汉字校验。
     本实验要求使用Java分别获取四种验证码。
  1)、由数字0-9组成的全数字验证码
  2)、由英文字母和标点符号组成的字符验证码
  3)、全部由中文组成的验证码
  4)、字符+数字的混合验证码
代码如下:
用一个静态方法随机生成四个字符,然后在主函数中调用并传参数进去,便可产生想要的验证码(生成随机字符的方法与上题雷同)。
import java.util.Random;
public class Yanzhengma {
public static void main(String[] args) {
String str1 = "0123456789";
String str2 = "全部由中文组成的验证码";
String str3 = ",。;’“:、!?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
String str4 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
String code1 = randomString(str1);
System.out.println(code1);
String code2 = randomString(str2);
System.out.println(code2);

String code3 = randomString(str3);
System.out.println(code3);

String code4 = randomString(str4);
System.out.println(code4);

}
public static String randomString(String str) {
Random rd = new Random();
String code = "";
for (int i = 0; i < 4; i++) {
int t = rd.nextInt(str.length());
char c = str.charAt(t);
code += c;
}
return code;
}
}
6、编写一个Java程序,将一个八进制数转换成二进制、十进制、十六进制和九进制。也可以将一个十进制数转换成十六进制、八进制、十进制和二进制。
十进制转任意进制的基本思想是:用十进制数分别对2、8、9、16进制求余,然后处以该进制,直到被除数为零为止。(要注意十六进制转换时,a、b、c、d、e、f的表示时,如a的ASSCIL码为97,即当a=10时要加上87才能输出a)。
任意进制转十进制:例如八进制数144要转换成十进制,转成十进制即1乘8的二次方加上4乘8的2一次方加上4乘8的零次方。(要注意十六进制转换时,由于是用字符类型转整型输出,a、b、c、d、e、f要进行相应转换,如a的ASSCIL码为97,即当a=10时要减87才能输出int型数值,同样,2、8、9进制进行转换是也要把字符类型转换成int类型,故需要减48得到int型数值)。这样转换可能有点复杂,另一种方法是可以直接定义一个字符串然后把0-9、a-f放进去取其地址值,即:String s="0123456789abcdef";Char c=s.charAt(a);可以实现。
进制互相转换:例如八进制转十六进制,先把八进制数转换成十进制数,然后十进制数再转换成十六进制。
import java.lang.Math;
public class eight3 {
public static void main(String[] args) {
String s = changeNum(100, 16);
System.out.println(s);
int x = change2Num(s, 16);
System.out.println(x);
int t = change2Num("1100100",2);
String ss = changeNum(t,;
System.out.println(ss);
}

// 将十进制转换成对应的进制
/**
* 将十进制的数字转换成指定进制的数字字符串
*
* @param num
*            要转换的十进制数字
* @param t
*            进制
* @return 返回转换之后的数字字符串 char c=s.charAt(a);
*/
public static String changeNum(int num, int t) {
String s = "";
while (num > 0) {
int a = num % t;
if (a >= 10) {
char c = (char) (a +87);//String s="0123456789abcdef";
//Char c=s.charAt(a);
s = c + s;
} else {
s = a + s;
}
num = num / t;
}
return s;
}
public static int change2Num(String num, int t) {
int sum=0;
int j=0;
for(int i=num.length()-1;i>=0;i--){
char c = num.charAt(i);
if(c>=97){
sum+=(c-87)*Math.pow(t,j);//字母a的ASSCIL码值为97
}else{
sum+=(c-48)*Math.pow(t,j);//零的ASSCIL码值为48
}
j++;
}
return sum;
}
}
分享到:
评论
1 楼 Sun_TW 2016-11-21  
很有帮助,谢谢。

相关推荐

    蓝桥杯c++-蓝桥杯竞赛练习之基础练习题十六进制转八进制.zip

    本文将深入探讨“蓝桥杯c++-蓝桥杯竞赛练习之基础练习题十六进制转八进制”的主题,帮助参赛者理解和掌握如何在C++中进行进制转换。 首先,我们需要理解不同进制之间的转换原理。计算机科学中,常见的进制有二进制...

    蓝桥杯c++-蓝桥杯竞赛练习之基础练习题十进制转十六进制.zip

    首先,我们需要理解十进制和十六进制之间的转换原理。十进制是我们日常生活中最常用的计数系统,基数为10,而十六进制是一种逢16进一的进位制,用0-9和A-F(A代表10,B代表11,C代表12,D代表13,E代表14,F代表15)...

    蓝桥杯c++-蓝桥杯竞赛练习之基础练习题十六进制转十进制.zip

    - `std::stoi` 或 `std::stoll` 可以将字符串形式的十六进制转换为十进制整数。但要注意,需配合`std::hex`设置基数,例如: ```cpp std::string hexStr = "FF"; int decimalNum = std::stoi(hexStr, nullptr, ...

    190930-各种进制转换.zip

    2. **十进制与十六进制转换**:十六进制(Base-16)是常用的表示方式,因为它可以更简洁地表示二进制数,每个十六进制位对应四位二进制。转换方法与十进制和二进制之间的转换类似,只是基数不同。例如,十进制数25...

    c++进制转换试题可以进行10->2范围转换

    题目所提及的“c++进制转换试题可以进行10-&gt;2范围转换”指的是将十进制数字转换为二进制数字。下面将详细探讨这个主题,包括基本概念、C++中的转换方法以及实现过程。 一、进制转换基础 进制是数字系统的基础,...

    java代码-任意给出一个十进制整数,将十进制整数转换为二进制数。

    `README.txt`文件可能包含了关于这段代码的简单说明或使用指南,例如如何运行此程序,或者可能包含一些关于二进制转换的额外信息。 通过理解和掌握这些概念,你可以编写出将任何十进制整数转换为二进制的Java程序。...

    C++关于信息学竞赛 函数章节 53个源文件试题 供初学者练习

    C++关于信息学竞赛 函数章节 53个源文件... //进制的转化 十进制转换为非十进制 非十进制 转换 成 十进制 int n,r; cin&gt;&gt;n&gt;&gt;r; fun(n,r); //11 } #include #include #include #include&lt;string&gt; using namespa

    java代码-1. 编程实现一个5位八进制数012345, 求出对应的十进制数

    通过这个例子,我们不仅学习了如何在Java中将八进制数转换为十进制数,还了解了如何在代码中处理字符串与数字之间的转换以及使用数学运算解决问题的基本方法。这对于我们理解和编写更复杂的程序至关重要。

    JavaScript学习习题和实例

    - JavaScript可以识别不同的进制表示方式,如八进制(以`0`开头)、十六进制(以`0x`开头)。 - 使用`Math`对象进行数学计算,例如`Math.sqrt(4)`用于计算平方根。 - `isNaN()`函数用于检查某个值是否为非数字。 ...

    实验三:AES加密算法

    假设密钥为128比特,其十六进制表示为`2B7E151628AED2A6ABF7158809CF4F3C`。密钥编排过程如下: **1. 初始密钥处理** 首先将初始密钥分成4个字(32位),并对其进行扩展以生成总共11个子密钥(对于10轮的AES-128来...

    算法设计与分析基础 习题参考答案

    习题1.3关注了将十进制整数转换为二进制整数的算法,以及求解数组中两个元素最小差值的算法。十进制转二进制是通过不断除以2并记录余数来实现的,而求最小差值的算法可以进一步优化以提高效率。 最后,习题1.4探讨...

    ACM_JAVA.rar_acm ja

    除此之外,ACMer还需要了解如何自定义函数实现不同进制之间的转换,比如二进制、八进制、十六进制等。理解位运算和进位规则对于实现这类功能非常关键。 在《ACM_JAVA速成.doc》文档中,可能详细介绍了这些知识点,...

    04747《Java语言程序设计(一)》课后习题答案

    * 整型常量的书写方式:可以使用十进制、十六进制、八进制等多种方式。 * 浮点数类型常量的书写方式:可以使用十进制、科学计数法等多种方式。 运算和语句 * JAVA中的字符不能参加算术运算,但可以参加字符串操作...

    vb课后习题答案及实验源程序

    这包括读写文本文件、二进制文件,以及使用流对象(如FileStream、StreamReader、StreamWriter等)进行高级文件操作。通过这些习题,学生可以学会如何持久保存和加载数据。 此外,数据库访问是VB应用程序经常涉及的...

    c++习题

    第二十六到二十八个习题可能探讨内存管理与优化,包括智能指针、内存池和垃圾回收等主题。掌握C++中的内存分配与释放机制,以及如何避免内存泄漏和野指针问题,是提高软件质量和性能的必要技能。 ### 20. 算法竞赛...

    西电软工oop上机题目1(§6.6习题16)实验源码6.6-16.cpp

     islegal()判断传入的字符串是否符合题目要求的进制数(二、八、十、十六进制) ; atoi()函数用于将字符串转化为整型数; 首先调用symbol函数,判断正负,然后调用atoi函数,atoi函数内先调用islegal函数判断...

    python二级考试习题.pdf

    0x3e7是十六进制数,转换为十进制等于1007,因此这个表达式的结果是False。 3. Python的保留字是具有特殊含义的词汇,如`del`、`pass`和`not`,它们不能作为变量名使用。`string`不是一个保留字,它可以作为标识符...

    C语言程序练习题 应付期末考试

    7. **整型常量**:C语言中的整型常量可以是十进制、八进制或十六进制。例如,`160`、`-0xffff`和`011`是合法的整型常量,但`-0xcdf`(缺少前导零)和`01a`(八进制中不能有`a`)是非法的。 8. **浮点数**:浮点常量...

    JAVA各章习题及答案.pdf

    17. 二进制、十六进制和八进制:文件中出现了“00x0XABC”和“shorti=32; longj=64;”这样的片段,反映了Java对不同数制的支持和转换。 总结来说,文件内容虽然杂乱,但从中可以提炼出关于Java编程语言的基本语法、...

    Java软件开发实战 Java基础与案例开发详解 8-4 练习题 共6页.pdf

    #### (2) 十进制与二进制、八进制、十六进制间的转换 ```java public static void main(String[] args) { Integer num = 10; String binary = Integer.toBinaryString(num); String octal = Integer....

Global site tag (gtag.js) - Google Analytics