编程算法基地-2.1利用字符串API

2.1利用字符串API

字符串是Java类型最常用。并且是复合类型

串非常经常用于,其最佳API熟悉文档。

推断串中有没有反复的字符

String s =”abcdebxyz”;

推断当中有没有反复字符

/*推断串中有没有反复的字符
String s ="abcdebxyz";
推断当中有没有反复字符*/

package StringAPI;

public class JudgeRepeatInString {
    public static void main(String[] args) {
       String s ="abcdex啊yz啊";
       boolean judge = false;//推断标记,初始化没有反复

       for(int i=0;i<s.length();i++){//首先遍历这个串
           char c = s.charAt(i);//得到第i位的字符
           if(s.lastIndexOf(c)!=i){//假设串中最后一次出现c表示的字符的位置!=i
              judge = true;//有反复
           }
       }
       System.out.println(judge);
    }
}
true

 char


charAt(int index)

返回指定索引处的 char 值。


 int


lastIndexOf(int ch)

返回指定字符在此字符串中最后一次出现处的索引。

移位加密

ASCII码+一个数

串的定义是不能被改动的

所谓改动,是新生成一个新的串

假设大量的新生成新的串,对计算机有非常大压力

所以考虑把串变成char类型数组。移位加密后,在变成串,就可以。

/*移位加密
ASCII码+一个数

串的定义是不能被改动的
所谓改动,是新生成一个新的串
假设大量的新生成新的串,对计算机有非常大压力

所以考虑把串变成char类型数组,移位加密后,在变成串。就可以。
*/

package StringAPI;

public class MoveSecret {
    public static void main(String[] args) {
       String s = "Where is my code?中文会非常乱吗?";
       char c[] = s.toCharArray();//讲串转为char数组
       for(int i=0;i<c.length;i++){
           c[i]++;
       }

       String s2 = new String(c);//讲char数组转回串,String的构造方法。

System.out.println(s2);
    }
}
[email protected]丮斈伛徉乲吘@

 char[]


toCharArray()

将此字符串转换为一个新的字符数组。


String(char[] value)

分配一个新的 String。使其表示字符数组參数中当前包括的字符序列。

 

推断

推断一个全路径名是否在c盘且是.ini扩展名。

"c:\\xyz\\bak\\x.ini" 复合标准

"ccc\\ttt\\kk\\ini" 则不是

/*
推断
推断一个全路径名是否在c盘且是.ini扩展名。

"c:\\xyz\\bak\\x.ini" 复合标准
"ccc\\ttt\\kk\\ini" 则不是

 */
package StringAPI;

public class JudgePath {
    public static void main(String[] args) {
       // String s = "ccc\\ttt\\kk\\ini" ;
       String s = "c:\\xyz\\bak\\x.ini";
       boolean judge = false;

       if (s.startsWith("c:\\") && s.endsWith(".ini")) {//以"c:\\"開始&&以".ini"结束
           judge = true;
       }
       System.out.println(judge);
    }
}
true

boolean


startsWith(String prefix)

測试此字符串是否以指定的前缀開始。


 boolean


endsWith(String suffix)

測试此字符串是否以指定的后缀结束。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-11-13 09:38:20

编程算法基地-2.1利用字符串API的相关文章

编程算法 - 左旋转字符串 代码(C)

左旋转字符串 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部. 请定义一个函数实现字符串左旋转操作的功能. 编程珠玑, 首先翻转前部分, 再翻转后部分, 最后全部翻转. 代码: /* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdio

编程算法 - 字符串的排列 代码(C)

字符串的排列 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一个字符串, 打印出该字符串中字符的所有排列. 方法: 使用递归依次交换位置, 打印输出. 代码: /* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h> void Permutation(char* pStr, char

编程算法 - 字符串相同 代码(Java)

字符串相同 代码(Java) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 实现一个算法, 确定一个字符串的所有字符是否全都不同. 假使不允许使用额外的数据结构, 又该如何处理. 解法1: 使用数据结构, 设置boolean数组, 把值(value)作为数组的索引(index), 判断数组是否重复. 解法2: 不使用数据结构, 可以通过位(bit)进行判断, 把每个字母映射2进制数的一位, 或运算("|")更新数字的位, 与运算("

编程算法 - 第一个只出现一次的字符 代码(C)

第一个只出现一次的字符 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 在字符串中找出第一个只出现一次的字符. 字符是char类型, 所以匹配256种可能, 采用hash表, 计算出现的次数, 再找到第一次出现的字符. 代码: /* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h> #i

编程算法 - 把数组排成最小的数 代码(C)

把数组排成最小的数 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一个正整数数组, 把数组里所有数字拼接起来排成一个数, 打印能拼接出的所有数字中最小的一个. 大数转换为字符串, 重载快速排序的比较方法, 进行排序, 最后拼接. 代码: /* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdi

编程算法 - 最好牛线(Best Cow Line) 代码(C)

最好牛线(Best Cow Line) 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 给定长度为N的字符串S, 要构造一个长度为N的字符串T. 反复进行如下任意操作. 从S的头部删除一个字符, 放入T的尾部; 从S的尾部删除一个字符, 放入T的尾部; 目标是要构造字典序尽可能小的字符串T. 使用贪心算法, 不断选取S首尾最小的字符, 放入T, 如果相等, 则再次向内查找, 找到内部最小的. 代码: /* * main.cpp * * Cr

十大编程算法助程序员走上大神之路

概述:编程算法,是完成程序逻辑的主要途径.本文推荐十大编程算法,有利于程序员的编程逻辑. 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来. 快速排序使用分治法(Divide and conquer)策略来把一个串行(lis

编程算法基础-一刀切法

1.5一刀切法 编程和编筐一样,处理边缘问题相同重要. 程序逻辑 開始 中间 结束 一刀切法上式 用空格或逗号分隔的串,提取为各个部分 abc ttt,kmd,uuu xyz 切分成每一部分. /* * "abc ttt,kmd,uuu xyz" 用逗号或者空格隔开字符串 分解为各个部分 */ package OneCut; public class SplitString { public static void main(String[] args) { // 一刀切(上式:事先补

编程算法基础3.3-测试驱动风格

cocos2d-x升级到3.0后变化不小,除了API的变化(主要是函数和类名称变化,以及使用了C++11的不少特性,function/bind, lamda, std::thread-),创建和编译工程也做了一些简化调整.本文主要讨论一下cocos2d-x3.0 在android平台开发的环境设置及工程创建编译流程. 1.   初始设置 除了2.x所需要的python,jdk, android sdk和ndk之外,还需要部署apache-ant. 1)      在path中设置好java环境变