这里我有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);
}
}
}
我们将不胜感激。
答案 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
}