Java 字符串索引值访问

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开始,因此被“

这个问题与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”替换。
“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");
}