Tag: 字符串

在Java中对齐文本

我必须读取一个整数,它将是后续行的长度。 (文本行永远不会超过提供的长度)。 然后我必须阅读每行文本并尽可能均匀地将空格转换为下划线。 例如: 我将输入行长度30.然后一行文本Hello this is a test string 。 然后将所有空格转换为下划线并填充,以便文本填充给定的行长度,如下所示: Hello__this__is__a_test_string 。 正如您所看到的,原始文本的长度为27个字符,因此要将其填充为30个字符,我必须在原始文本中添加3个额外的空格,然后将这些空格转换为下划线字符。 请问你能告诉我一个可以解决这个问题的方法吗?

使用String Builder获取错误“字符串索引超出范围:0”

所以这是我在Java中的代码(用于返回字符串的两半 – 一个是奇数半部分,从索引0开始,或者第一个字符,后半部分,从索引1或第二个字符开始): public class StringTest{ public String halfOfString(String message, int start){ int length = message.length(); StringBuilder output = new StringBuilder(length); char ch; int i; if((start==0)||(start==1)){ for(i=start; i<message.length(); i=i+2){ ch = message.charAt(i); output.setCharAt(i,ch); // error occurs here } } return output.toString(); } public void testFunction(){ String s = "My name is Sid"; String first = […]

如何比较java中的字符串

我有一个我正在制作的程序,当用户输入心情时,它会根据它输出报价。 我需要告诉程序 if the user is happy, then output this text问题是,我不知道如何让程序识别输入并根据它输出文本…这是我到目前为止的代码。 import java.util.Scanner; public class modd { public static void main(String arrgs[]) { System.out.println(“Enter your mood:”); Scanner sc = new Scanner(System.in); String mood = sc.nextLine(); if (sc = happy) { System.out.println(“test”); if (sc = sad) { System.out.println(“I am sad”); } } } }

如何给java足够的时间为变量赋值?

我有一个循环,在循环结束时将String[]添加到ArrayList (在类中声明而不是方法),并在循环开始时说String[]被清除其内容: String[] a = new String[2]; while(true){ a[0] = “”; a[1] = “”; —–some code—- (that adds to a[0] and a[1]) —–some code—- //lets call our ArrayList list list.add(a); } 因此,列表中存储的内容通常是空String 。 我认为这是因为java进入下一步的速度太快但我不确定,请问有什么帮助吗? 这是我的所有代码: static ArrayList Names = new ArrayList(); public static void read(BufferedReader stream){ String[] aux = new String[2]; char it = 2; […]

如何使控制字符可见?

我必须显示带有可见控制字符的字符串,如\n , \t等。我试过像这里的引用,我也试过做类似的事情 Pattern pattern = Pattern.compile(“\\p{Cntrl}”); Matcher matcher = pattern.matcher(str); String controlChar = matcher.group(); String replace = “\\” + controlChar; result = result.replace(controlChar, replace); 但我失败了

将长日志分为两个的性能问题

当我们将一长串代码分成两行以便于阅读时,它会在行之间引入一个加号(如果在文本之间分割)。 例如,在正在记录某些文本的文本中间拆分一条长行。 因此,如果它带来了额外的字符串连接,应该避免这种情况吗? 或者更好的可读性权衡更高?

compareTo()真正返回什么?

Java中的compareTo()方法返回一个大于/等于/小于0的值,我就知道了。 但是,价值本身就是我的问题。 compareTo()返回时,2或4之间有什么区别。 看下面的代码 String s1=”hello”; String s2=”hello”; String s3=”meklo”; String s4=”hemlo”; System.out.println(s1.compareTo(s2)); // 0 System.out.println(s1.compareTo(s3)); // -5 System.out.println(s1.compareTo(s4)); // -1 为什么最后两个命令是-5和-1?

在Java中逐字合并两个字符串?

给定两个字符串A和B,创建一个由A的第一个字符组成的较大字符串,B的第一个字符,A的第二个字符,B的第二个字符,依此类推。 任何剩余的字符都会在结果的末尾出现。 public String mixString(String a, String b) { String str = “”; int len = 0; if (a.length() >= b.length()) { len = a.length(); } else len = b.length(); for (int i = 0; i < len; i++) { if (i < a.length()) { str += a.charAt(i); } if (i < b.length()) { str […]

if字符串包含语句中的Java OR运算符

我有以下代码。 for (String str5 : verticesposition2) { if(!str5.contains((“Vertex”)||(“Name”)||(“Transmittance”)) { System.out.println(str5); } } 如上所示,如果字符串不包含Vertex,Name或Transmittance,我希望它打印出来。 但是我得到编译错误说|| 对于参数类型,运算符未定义。 我对编程比较陌生,所以我不确定这是什么意思,有人能指出如何修复我的代码的正确方向?

如何在Java中将数组字符移到右侧?

这就是我所拥有的: class encoded { public static void main(String[] args) { String s1 = “hello”; char[] ch = s1.toCharArray(); for(int i=0;i<ch.length;i++) { char c = (char) (((i – 'a' + 1) % 26) + 'a'); System.out.print(c); } } } 到目前为止,我已经将字符串转换为数组,并且我已经研究了如何移动,但现在我被卡住了。 我想要的是代码从ch[0] ,读取字符,将其向右移动( h到i ),然后对数组中的每个字符执行相同操作,直到它到达结尾。 现在,我的代码输出opqrs 。 我希望它输出ifmmp 。 如果我用for int i = ch[0]替换for循环中的int i = ch[0] […]