有个 但是自己想不明白 所以想请教一下 题目如下:
一组数字“1234563987”
需要把里面的3 替换成为33 不使用函数 希望大大能告诉我下 谢谢了 最好能加上注释 免得看不懂 不过如果能把思路说一下也万分感谢!
最后 谢谢您 ! 期待您的回复!
不使用函数的意思就是不使用replace()着种类型的函数 .
一组数字“1234563987”
需要把里面的3 替换成为33 不使用函数 希望大大能告诉我下 谢谢了 最好能加上注释 免得看不懂 不过如果能把思路说一下也万分感谢!
最后 谢谢您 ! 期待您的回复!
不使用函数的意思就是不使用replace()着种类型的函数 .
{
public static void main(String[] args)
{
String s="1234563987";
String []a=s.split("3");
String str="";
for(int i=0;i<a.length;i++)
{
if(i!=a.length-1)
str+=a[i]+"33";
else
str+=a[a.length-1];
}
System.out.println(str);
}
}
#include <stdio.h>
#include <string.h>
main()
{
char *pstr="1234563987",*p,*q;
p=pstr;
while(*p!='\0')
{
if(*p=='3')
{
for(q=pstr+strlen(pstr);q>p;q--)
{
*(q+1)=*q;
}
*(p+1)='3';
p+=2;
}
else p++;
}
puts(pstr);
}
for(int i=0;i<result.length;i++){
int temp = result[i];
if(temp == 3){
result[i]=33;
}
}
for(int j=0;j<result.length;j++){
System.out.print(result[j]+" ");
}
}
//int[] result = {1,2,3,4,5,6,3,9,8,7};
String str = "1234563987";
StringBuffer sb = new StringBuffer();
for(int i=0;i<str.length();i++){
char temp = str.charAt(i);
if(temp == '3'){
sb.append('3');
sb.append('3');
}else{
sb.append(temp);
}
}
System.out.println(sb.toString());
}
我稍微修改下6楼的第2个答案,O(∩_∩)O,这些都是常出现和用到的方法,比如String的charAt()方法和StringBuffer类的append()方法,public class Test { public static void main(String[] args) { String str = "1234563987";
StringBuffer sb = new StringBuffer();
char ch ;
for(int i=0;i<str.length();i++){
ch = str.charAt(i);
if(ch=='3'){
sb.append('3').append('3');
}else{
sb.append(ch);
}
}
}
}
你有JDK帮助文档吧?
public static void main(String[] args) {
//要修改的字符串
String text="1234563987";
//创建一个StringBuilder的对象
StringBuilder text_=new StringBuilder("");
//for循环读取要修改的字符串
for(int i=0;i<text.length();i++){
//如果字符串中的char值是3让它多添加一次
if(text.charAt(i)=='3'){
//相当于多添加了一次
text_.append(text.charAt(i));
}
//通过for循环逐个把要修改的字符串中的字符一个一个添加都Builder对象中!
text_.append(text.charAt(i));
}
//输出Builder对象
System.out.println(text_);
}}
我看上面的朋友用的都StringBuffer对象!
我用的是StringBuilder对象!
因为在执行程序时StringBuffer会处理同步问题!而StringBuilder不处理同步!所以用StringBuilder对象的效率高!
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根 StringBuffer a = new StringBuffer("12345639837");
String c = a.toString();
char b[] = c.toCharArray();
int i,j = 1;
for( i=0; i<b.length; i++ )
{
if(b[i]=='3')
{
a = a.insert(i+j, '3');
j++;
}
}
System.out.print(a);
}}
public class Replace3 { public static void main(String[] args) {
String s = "1234563987";
StringBuffer sb = new StringBuffer();
char[] c = s.toCharArray();
for(int i=0; i<c.length; i++){
sb.append(c[i]);
if(c[i] == '3'){
sb.append('3');
}
}
System.out.print(sb);
}
}
做法好像都一样啊……
if(a[i].equals("3"))
{
a[i]="33";
}
public class TestExtend{
public static void main(String[] args){
String str="1234563987";
char[] s=str.toCharArray();
for(int i=0;i<s.length;i++){
if(s[i]==3){
s[i]=33;
}
System.out.print(s[i]);
}
}
}
输出结果:1234563987 不知哪错了?O_O.............