如何根据Java中的值从String中获取特定字符?

时间:2014-11-24 13:22:39

标签: java string

这里我有String base =" flames"并且值将是动态的。基于值,我需要从基本字符串获取字符。如果值= 0,我需要得到输出' f'如果价值超过6,那么我需要开始' f为7'然后打印特定的值。如果值= 10,那么我需要得到输出为' m。任何人都可以帮我解决这个问题。这是我的代码。

public class demo {

public static void main(String[] args) {
    String base = "FLAMES";
    int value = 6;
    if (base.length() >= value) {
        System.out.println(value);
    }
 }
}

我们将不胜感激。

3 个答案:

答案 0 :(得分:2)

尝试使用mod运算符:

int value = 6;
System.out.println(base.charAt(value % base.length()));//F
value = 7;
System.out.println(base.charAt(value % base.length()));//L

记住你说0应该给你F,所以10会给你E而不是M如下

F L A M E S F L A M E S
0 1 2 3 4 5 6 7 8 9 10 11

答案 1 :(得分:1)

public static void main(String[] args) {
        String base = "FLAMES";
        int value = 1;
        value--;
        value = value % base.length();
        System.out.println(base.charAt(value));
     }

如果值大于字符串的长度,则可以使用模数除法。这将为您提供任何输入的字符。只需在编号上加1即可编辑我的帖子。

答案 2 :(得分:0)

String - String是java中的字符数组,数组始终以零索引开头。

F   L   A   M   E   S  
0   1   2   3   4   5

但是,根据你的问题,你需要

    0 => F  
    7 => F  // String length is 6, but array index start from 0.
   10 => M

修改后的代码:如果值大于7,我在这里输入了索引。

public class demo {

public static void main(String[] args) {
    String base = "FLAMES";
    int value = 10;  // get input 
    char c=base.charAt(value%base.length());  

    if(value>=7){ // if value exceeds the 6, 
        value = value-1;  // you have to do value-1 to manage index.
        c=base.charAt(value%base.length());
    }

    System.out.println("char : "+c);  // print result
 }