字符串索引值访问

时间:2018-12-31 23:42:49

标签: java string char charat

此问题与Java中的字符串和数组有关。假设我有一个字符串S = abcd。我有一个数组索引[] = {2}。我的问题是要从字符串 S 的索引位置2查找值,因为数组index []保持2。我有一个目标数组,其中包含“ EF”。现在,如果S在位置2包含 a ,它将被“ EF”替换。

如何访问S的2个位置。类似吗? S[index[0]]这是返回S [2]吗?

示例: 输入:S =“ abcd”,索引= [0,2],源= [“ a”,“ cd”],目标= [“ eee”,“ ffff”] 输出:“ eeebffff” 说明:“ a”从S中的索引0开始,因此被“ eee”代替。 “ cd”从S的索引2开始,因此被“ ffff”代替。

2 个答案:

答案 0 :(得分:1)

已编辑
在您发表评论之后,我添加了sources数组,并假设两个数组sourcestargets的长度相同:

    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);

将打印

eeebffff

答案 1 :(得分:1)

  

我的问题是从字符串S的索引位置2找出值

S.charAt(2)在其索引2处返回一个char值,或者您可以char[] charArray=S.toCharArray()获取一个char[]并以{{1} }

  

如果S在位置2处包含a,则它将替换为“ EF”。

charArray[2]

如果您确定只能存在一个if(S.charAt(2)=='a'){ StringBuilder sb=new StringBuilder(S); S=sb.replace(2,3,"EF").toString(); }

a