Java 字符串索引值访问
这个问题与Java中的字符串和数组有关。假设我有一个字符串S=abcd。我有一个数组索引[]={2}。我的问题是从索引位置2处的字符串S中找出值,因为数组索引[]保留2。我有一个包含“EF”的目标数组。现在,如果S在位置2包含a,则它将被“EF”替换 如何进入S的2个位置。是这样的吗<代码>S[索引[0]]这是返回的S[2] 例如: 输入:S=“abcd”,索引=[0,2],源=[“a”,“cd”],目标=[“eee”,“ffff”] 输出:“eeebffff” 说明:“a”从S中的索引0开始,因此被“eee”替换。Java 字符串索引值访问,java,string,char,charat,Java,String,Char,Charat,这个问题与Java中的字符串和数组有关。假设我有一个字符串S=abcd。我有一个数组索引[]={2}。我的问题是从索引位置2处的字符串S中找出值,因为数组索引[]保留2。我有一个包含“EF”的目标数组。现在,如果S在位置2包含a,则它将被“EF”替换 如何进入S的2个位置。是这样的吗S[索引[0]]这是返回的S[2] 例如: 输入:S=“abcd”,索引=[0,2],源=[“a”,“cd”],目标=[“eee”,“ffff”] 输出:“eeebffff” 说明:“a”从S中的索引0开始,因此被“
“cd”从S中的索引2开始,因此它被“ffff”取代。已编辑
在您的评论之后,我添加了
源
数组,并假设两个数组源
和目标
具有相同的长度:
String s = "abcd";
String[] sources = {"a","cd"};
int[] indexes = {0, 2};
String[] targets = {"eee", "ffff"};
int more = 0;
for (int i = 0; i < targets.length; i++) {
int startIndex = more + indexes[i];
int endIndex = more + indexes[i] + sources[i].length();
if (startIndex < s.length() && endIndex <= s.length()) {
String sBefore = s.substring(0, indexes[i] + more);
String sAfter = s.substring(indexes[i] + sources[i].length() + more);
if (sources[i].equals(s.substring(startIndex, endIndex))) {
s = sBefore + targets[i] + sAfter;
more += targets[i].length() - sources[i].length();
}
}
}
System.out.println(s);
我的问题是从索引位置2的字符串S中找出值
S.charAt(2)
在其索引2处返回一个char
值,或者您可以char[]charArray=S.toCharArray()
获取一个char[]
并以数组索引方式访问它,如charArray[2]
如果S在位置2处包含a,则其将替换为“EF”
如果您确定只能存在一个a
:
if(S.charAt(2)=='a'){
S=S.replace("a","EF");
}
也许你所需要的正是查拉特(2)。您可以查看API。
S.charAt(索引[0])
我现在没有得到这个如果S在位置2包含一个,那么它将被“EF”替换。
,使用示例输入和输出解释S.tocharray()[index[0]]
(如果需要多次访问它,请将char[]
保存到局部变量).我说的是S.tocharray()[index[0]]
,不是S.tocharray([index[0]])
-第一个不是打字错误。这个代码没问题。但是String[]sources
在这里没有跟踪。应在源字符串上进行检查。如果sources
的值等于定义位置处字符串S
的值,则只有字符串的位置值被源值替换。所以我尝试修改代码'String s=”“;对于(字符串n:源)s+=n;char[]c=s.toCharArray();对于(inti=0;iif(S.charAt(2)=='a'){
StringBuilder sb=new StringBuilder(S);
S=sb.replace(2,3,"EF").toString();
}
if(S.charAt(2)=='a'){
S=S.replace("a","EF");
}