java如何实现替换指定位置的指定字符串的功能

Python010

java如何实现替换指定位置的指定字符串的功能,第1张

可以使用StringBuffer定义字符串,之后使用replace方法替换指定位置的字符串为指定的字符串内容,如下代码:

public

class

Demo1

{

public

static

void

main(String[]

args)

{

StringBuffer

buffer

=

new

StringBuffer("123456")

System.out.println(buffer.toString())//输出123456

buffer.replace(0,

1,

"a")

System.out.println(buffer.toString())//输出a23456

}

}

这里简单介绍一下replace方法的使用,replace方法一共有三个参数,第一个参数是指定要替换的字符串的开始位置,第二个参数是指定要替换的字符串的结束位置(注意这里的结束位置不包括本身),第三个参数是指定想将字符串替换成什么内容。

如:原字符串内容为"123456",现在调用replace(0,

2,

"abc"),原字符串变为"abc3456"

给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增。例如当 L 为 3 时,序列为 { aaa, aab, aac, …, aaz, aba, abb, …, abz, …, zzz }。这个序列的倒数第27个字符串就是 zyz。对于任意给定的 L,本题要求你给出对应序列倒数第 N 个字符串。

输入格式:

输入在一行中给出两个正整数 L(2 ≤ L ≤ 6)和 N(≤10​5​​)。

输出格式:

在一行中输出对应序列倒数第 N 个字符串。题目保证这个字符串是存在的。

输入样例:

3 7417

1.

输出样例:

pat

1.

上代码!!!

#include<stdio.h>

#include<math.h>

int main()

{/*

我们可以把a-z看成26进制,0表示a,25表示z。(类比,2进制每一位最多为1,16进制每位最多到15)

L位,那么可以表示26^L个数。(类比,3位2进制,可以表示0到7,一共8个数)

那么L位能表示0-26^L-1,求倒数第n个数,也就是求数字26^L-1-n+1=26^L-n

(26^L-n是第26^L-n+1个数字)

令p=26^L-n,然后把10进制转为26进制就行(就是不断%26,/26)(0代表a,25代表z)

然后输出结果,有可能位数L很大,所以在不够L的位上补'a'

*/

int L,N,y //L控制多少个字母组成 N控制输出倒数第N个

int i,x // i控制循环次数 x

scanf("%d",&L)

scanf("%d",&N)

N=N-1

for(i=1i<=Li++)

{

y=N/(pow(26,L-i)) //pow(2,3) 即2的3次方 这里是26的L-i次方

printf("%c",'z'-y)

x=pow(26,L-i)

N=N%x

}

return 0

}

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

37.

38.

39.

40.

41.

42.

43.

import java.util.regex.*

public class RepTest {

public static void main(String[] args) {

String src = ">=,<=,=,>=,<=,=,>=,<=,=,>=,<=,=,>=,<=,=,>=,<=,=,"

System.out.println("原串:"+src)

Matcher ma = Pattern.compile("[^><]=").matcher(src)

while (ma.find()) {

src = src.replaceAll(ma.group(), "")

}

System.out.println("替换:"+src)

//其实还有一个思路,你可以拿逗号切成数组,然后对数组元素进行判断,拿=号切也可以!

}

}