【发布时间】:2021-05-13 05:16:52
【问题描述】:
我们如何实现对字符串的反向、替换、删除操作。我在面试,面试官让我写一个逻辑到下面。
-
输入:“这是一次采访”
-
如果我们没有用 z 替换它
-
去掉空格
-
完全颠倒句子
-
在不使用任何内置方法的情况下编写逻辑***
我无法像使用 % 和 / 操作符对整数进行比较那样来破坏字符串并进行比较。我要求他使用一种内置方法 charAt();实现这一目标。但是有没有办法不使用 charAt() 方法来实现呢?
String input = "This is an interview";
char t = 't';
char z = 'z';
char space = ' ';
String output = "";
char c = 'i';
for(int i=0;;i++){
try{
c = input.charAt(i); //here I have used one inbuilt method but how can we avoid this
}catch(Exception e){
break;
}
if(c==t) {
output = z + output;
}else if(c!=space){
output = c+output;
}
}
System.out.println(output);
}
【问题讨论】:
-
准确地说,你想避免只使用String的内置方法吗?
-
不,否则我会使用字符串生成器。任何使用点的内置方法。
-
@JagadishDabbiru 如果不调用
String上的方法,您将无法做到这一点。 -
解决这个(奇怪的)面试问题的一种方法是将
input重新定义为char[](如果允许的话,谁知道)。然后你可以简单地迭代 char 数组中的字符。否则,我看不到不使用任何内置方法的方法。 -
当我调试 chartAt 方法时。它在字符串类
@Stable private final byte[] value;中使用了这个字段。有没有办法使用反射来获取这个字段?
标签: java string algorithm replace reverse